From dcb45b307a2678f4d5c8cbda301ad176b67ab925 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 25 Aug 2016 19:10:54 -0700 Subject: [PATCH] More documentation. --- README.md | 130 +++++++++++++++++- .../configurations_framed_small.png | Bin 0 -> 32078 bytes 2 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 images/screenshots/configurations_framed_small.png diff --git a/README.md b/README.md index 8ad6038..43d0033 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,134 @@ By default, TES Remote Programmer is configured to work with the [DoorKing (DKS) ![Main Activity](images/screenshots/main_activity_framed_small.png) -In the main activity screen enter the entry system's phone number and master code, then select on the programming options. +In the main activity screen enter the entry system's phone number and master code, then select one the programming options. ![Programming Activity](images/screenshots/add_phone_number_framed_small.png) -In the programming activity screen fill out the fields and click the ![Dial](images/call_fab.png) floating button (if available) to dial the programming in or the ![Dial](images/dialpad_fab.png) floating button to view the manual steps. +In the programming activity screen fill out the fields and click the ![Dial](images/call_fab.png) floating button (if available) to dial the programming in or the ![Dial](images/dialpad_fab.png) floating button to scroll through the manual (keypad) steps. + +## Configurations + +![Configurations](images/screenshots/configurations_framed_small.png) + +To switch configuration, choose `Configurations` under the toolbar menu and select the desired configured. + +To import a new configuration, select `Import` in the _Configurations_ dialog. + +### New Configurations + +Custom configurations can be created using [JSON](http://www.json.org/). + +[View Example](app/src/main/res/raw/dks_1802_epd.json) + +#### Parameters + +First defined the global parameters: + +```json +"params": { + "name": "DKS 1802-EPD", + "star": "*", + "hash": "#", + "end": "0 + #", + "size": 4 +} +``` + +| Parameter | Description | Required | +|:-----------|:-------------------------------------------------------------------------------------------------|:---------| +|`name` | The configuration name. | Yes | +|`star` | The key used to start, acknowledge or terminate programming steps. Most systems use the `*` key. | Yes | +|`hash` | They key used to in place of numbers when applicable. Most system use the `#` key | No | +|`end` | The end programming manual sequence. For example DoorKing uses `0` and `#` pressed together. | No | +|`size` | The size (number of digits) of the master code. Most systems use 4 or 5. | Yes | + +### Options + +Second defined options. These defined the data used to create programming activity screens in the app. + +For example, the system's manual would list the steps to Programming 7-digit Phone Numbers as something like: + +1. Press *01 and enter Master Code. +2. Enter a Directory Code then press *. +3. Enter a 7-digit Phone Number then press *. +4. Press 0# TOGETHER when finished. + +which would translate into: + +```json +"opts": [ + { + "title": "Add 7-digit Phone Number", + "fields": [ + { + "hint": "Directory Code", + "size": 3 + }, + { + "hint": "Phone Number", + "size": 7, + "hash": true + } + ], + "dtmf": "*01[MASTER],[FIELD:1]*,[FIELD:2]*" +} +``` + +| Options | Description | +|:--------|:-----------------------------------------------------------------------------------------| +|`title` | The title of the option. | +|`fields' | See (#Fields) | +|`dtmf` | See (#DTMF) | +|`nodial` | Indicated the remote programming is not available. Steps must be executed at the keypad. | + +All are required, except `nodial` + +#### Fields + +```json +"fields": [ + { + "hint": "Directory Code", + "size": 3 + }, + { + "hint": "Phone Number", + "size": 7, + "hash": true + } +] +``` + +Fields represent the data entry text field on option screens. + +| Element | Description | Required | +|:--------|:--------------------------------------------------------------------------------------|:---------| +|`hint` | Set the hint/label of the field. | Yes | +|`size` | Set the required size of the field. | Yes | +|`min` | Set the minimum value of a numeric field. | No | +|`max` | Set the maximum value of a numeric field. | No | +|`alpha` | Set to `true` if the field is alphanumeric. | No | +|`hash` | Set to `true` if the field accept the (#Parameters) `hash` value in place of a digit. | No | + + +#### DTMF + +```json +"dtmf": "*01[MASTER],[FIELD:1]*,[FIELD:2]*" +``` + +DTMF represent the dialing sequence for the programming steps. A comma (`,`) can be used to specify a pause in the dialing sequence. + +The following markers will be substituted by their actual values upon dialing. + +| Marker | Description | +|:-----------|:------------------------------------------------------------------------------| +|`[MASTER]` | Substituted with the Master Code | +|`[FIELD:X]` | Substituted with the field's value, where X is the field number in the array. | + +#### Validation + +Imported configurations will be validated. While the validation is not perfect, it should be good enough to spot most syntax errors. Please sure to use a JSON editor to make the whole process of creating configurations a whole lot easier. When in doubt be sure to look at the [default configuration](app/src/main/res/raw/dks_1802_epd.json). + + diff --git a/images/screenshots/configurations_framed_small.png b/images/screenshots/configurations_framed_small.png new file mode 100644 index 0000000000000000000000000000000000000000..da7c90082a834543daf46204f8fd96fa6dd39ff1 GIT binary patch literal 32078 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

r z5cM&`_k$jmd>2eOsIvE8OSQkTSK4o(_DlFrH@!cZY(Cr_p2e6M%FD+B&!QzL40~Y- z+Q9)>NKKuyx1*)Y9FG*WFp^S%wL!68w7o7( z966q0vNo0>6fN2&#-ix7`kauMy7$1`{Lo$6z*}UxItX|G%l2g{A2U8o3Sm%-(qT)U zV^8gO?i7`Kd@tYMp{U)?iuQ~;VmYrf$i~?v1f@hRSTX_%VdA!aOUD&xvzA%`dk74o zd3$jn-}Q6B$6RnE=CtH5qMa~gQP@MwL&QVIL(=0#zAiiJAQUXqEGY!ia&MA9F46Pi zW*pst$~}@!ccI6ly;JJO7xXGY1?>IcXiT=7<&fqt=izexYuQV8v%ZL$Zxx7dz5P@7 zM`=X9D^@lv!X>DoPc*1H&YB@h-0u>iOr^i;w&@!R46SfwU5Vh?tIfVL-j^wfG@~`nZl<<6(qGPcG&WV?!$ch2Dehf^BgBJj-4FceQN7U`2F0X3)53)> zo*rVj$C8I*#m>5;2OVivEGq&M4ULjZ5zQ+Lmpypa%iOMf&>mqRS?k#IQ-8$qh736o zc2-Zt@B9Ajd75h^R&aj)s$29QPp2#_MEvx>`{d?Q3Cub3<~*MdxXv+!&cnJ`V5Sw( zhtJ|r1e`J2T5&rZS>RJJQ6Tgg`x&=8-SNz?<&J&fhh?*i0f#PYm?L%HiF#R4^X$4x zz!igoEYBk2+}Eu%>EuX1Fbp)dGhz2=;vVeHE2FM#KRy-j|H>lD`DH8VReH*Z_ywz?&c$=j>pTA|xlxlXW#M|o zJj4O;ylL|iKhv!>{AY`YTRQXPg=_b(CS47En8{wC1lAf#Mc$)tb8eU?r~k;>`qPwN z*Xy$M?e%jhb@{Z^SHai2*qswYX>Cnq9$r))D$f#=VEd|B$S+U4X`xpL4r2-Hs($hd zFdGlPH)w+O=jGx1zxvFqtfKW+zCz*13=l;#fo0+yWEN13_NEHzC2Lq-j1CM0?XI#(&9Vg`5&s3FhiXd7>2K94Lc@xp>Xa-wK9mKg7W|zW zX3?Cep3o-pFz}Xshb@N@= zKW+_WfYxx{7`-e1_Mq_LL%GUC$4Aq{$EklR?{O>cITeh|^B(i71`P9@F-#6|-dUaY zO`0(I^@rGM(>n3kZjDb^uUfN<>3P_Q?0cwYSFiY|=4#%}ilDcW_RJVSF+g1&HWiz~ z)UC8F0$Q6!i!COr3o-gn+l;z}4Xum#H7!{z#{YZ%ccR+<-QSg@={p}9M++I3gy5Yv z&nEv2)8ASbM*b;{47c46rh%-0lTjUE^j4$6G#H86sCTw6WkqnOY9qFXt?i2*7l-|p zzM3uRu~q?De75eN)D(&u>!q8Z1Iq^I^Tr-_O+ zi25BAL)L7sG)k=={72fP`5ai_hA6S1_sV5oJi3D4uL4?F{M2E>^Axqc+iP?_r+ufC zXZ#&^|M*5Hh#kj+5AAG_NY2?z!Av1;S?)9357rrwiF-x$F){_rnfTf$}TdmKafP5lId+b~BD%_Fgt=R%y0!)^av)c5k+45ek2ioMTQXWtt za(MR|4@)X`*HWiRiYq8A;E=F;#ZhiCPG@hResSR2qYqYnr=E#@z|y4V7GeV=u*TyK zmtpC{y|-%@ImKx*oQgKjro;MbB@RUkCx!6r1OK$f(a(9#1X+tnMjY*|1T;v__#7=Gu&O>wll?yw&=gGWUTMOv+L8MTYm z$bRtMQCzW1sX+UCNh)2?wM&-S8GEmJb_t)yXi=T0d@{1;?_=2c6?TmzefUL)1X3tf zi{_z~L`Hg%PvRP0$DbFQxnPOpPd6cj4~)zb22O`l;JaDG|}L7hg1ySCp^BUaWE?kzp(8Kd--% z$m?hAH9b5Uy4bGH1vhVwj_6LkVBM~v_Ai<*XHT2Om}?7fb)4?MZ9XnAZoPeBVfb)J z=9YG?>9|vGL<2n!B8;7%XVEr9pXLlJ3ksuE{f>RE|7@tieBJxguvuPq?gT_VW1>AH zX(vn-_8|8K{-Qcf+AM@&*j%TOpI{s(&SXuxDdhokw@lhHBQtNFr-~Jx#)}s|)~bb> zO4RD$C9ytlx3q4pmO96h>=zh@3(Ic2_bJX;85P7Hs*f5Roc2y#QTB|3HAz(Yl1WV~ z(c}k8A1xz~--t>)_ZIfZke}GY_(=+vXUWgaUMzbizvvuc7-_TQSQh8Me|^98K#?v; nL#GF2y!e}||GAx6`&mz2!R+InCn;Q5@P-b$lRCb literal 0 HcmV?d00001