┌─┐ ┌─┐ ║"│ ║"│ └┬┘ └┬┘ ┌┼┐ ┌────────────┐ ┌────────────┐ ┌───────┐ ┌───────┐ ┌──────┐ ┌─────┐ ┌───────┐ ┌───────┐ ┌┼┐ │ │XXX CPU │ │YY TRX │ │Crypto │ │YYY │ │Data │ ┌──────┐ ┌───┐ ┌──────┐ │Fuel │ │Power │ │Power │ │ ┌┴┐ │(A! Chipset)│ │(A1 Chipset)│ │Chipset│ │Chipset│ │Logger│ │Buzzer│ │LED│ │Button│ │Gauge│ │Primary│ │Back-up│ ┌┴┐ User └─────┬──────┘ └─────┬──────┘ └───┬───┘ └───┬───┘ └──┬───┘ └──┬───┘ └─┬─┘ └──┬───┘ └──┬──┘ └───┬───┘ └───┬───┘ Officer │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔═══════════════════════════════╗ │ │ │ │ │ │ │ │ │ │ │ ═══════╪════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╪═════════════════════════════════════════════════════════════════════════════════════════════╣ PHYSICAL FEEDBACK SUB-ROUTINE ╠══════════╪═════════════════════╪══════════════════╪═════════════════╪═════════════════╪════════════════╪═══════════════╪═════════════════╪═════════════════╪══════════════════╪══════════════════╪═══════════════════════════ │ │ ╚═══════════════════════════════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════════════════════════════╧════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╧═════════════════════╧══════════════════╧═════════════════╧═════════════════╧════════════════╧═══════════════╧═════════════════╧═════════════════╧══════════════════╧══════════════════╧═══════════╗ │ ║ ░║ │ ║This section provides details about the sub-routine <&loop-square>PHYSICAL FEEDBACK, the purpose of which is to provide haptic and/or visual feedback to the XXX User on behalf of the originating process. ║ │ ║The two-letter process code for this sub-routine is: pf. All variables created by the sub-routine are prefixed with pf. ║ │ ║The process that triggered this sub-routine is identified using the existing variable <&dollar>pfRequester, which was created by the originating process. ║ │ ║<&loop-square>PHYSICAL FEEDBACK generates the EDI message <&envelope-closed>T401, which includes the TSH (XXX Security Hash) element for added tamper detection during transmission. ║ │ ║ ║ │ ╚══════════════════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╤═════════════════════╤══════════════════╤═════════════════╤═════════════════╤════════════════╤═══════════════╤═════════════════╤═════════════════╤══════════════════╤══════════════════╤═══════════╝ pf-001 Receive task request from process <&dollar>pfRequester.┌┴┐ │ │ │ │ │ │ │ │ │ │ │ ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════╤═══════╪═╪═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╪══╗ │ │ │ │ │ │ │ │ │ │ │ ║ PAR │ │ │ │ ║ │ │ │ │ │ │ │ │ │ │ │ ╟──────┘ │ │ │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │────┐ │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │ │ pf-002 Set variable <&dollar>pfStart to current $prodTime. │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │<───┘ │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │────┐ │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │ │ pf-003 Set variable <&dollar>pfStartRaw to current $prodUptime. │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │<───┘ │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │────┐ │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │ │ pf-004 Clear and start timer $tmr(pf + "01"). │ ║ │ │ │ │ │ │ │ │ │ │ │ ║ │ │<───┘ │ ║ │ │ │ │ │ │ │ │ │ │ │ ╚══════════════╪═╪═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╪══╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════════════╪═╤═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╪═════════════════════╪══════════════════╪═════════════════╪═════════════════╪════════════════╪═══════════════╪═════════════════╪═════════════════╪══════════════════╪═╗ │ │ ║ EDI VARIABLES │ │ │ │ │ │ │ │ │ │ │ ║ │ │ ╟────────────────┘────┐ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ │ │ pf-005 Set variable <&dollar>pfEdiName to "T401". │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ │<───┘ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ │────┐ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ │ │ pf-006 Set variable <&dollar>pfEdiVersion to "01". │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ │<───┘ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ │────┐ ╔═════════════╧═════════════════════╧══════════════════╧═════════════════╧═════════════════╧════════════════╧═══════════════╧═════════════════╧═════════════════╧═══════╗ │ ║ │ │ ║ │ │ │ pf-007 Set variable <&dollar>pfEdiStatus to "I". ║<&dollar>pfEdiStatus is set to "I" (Incomplete) until the sub-routine completes and writes the final ░║ │ ║ │ │ ║ │ │<───┘ ║EDI message to Data Logger, at which time the status is changed to "C" (Complete). ║ │ ║ │ │ ╚══════════════╪═╪═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝══════════╪═╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════════════╧════════════════╧═══════════════╧═════════════════╧═════════════════╧══════════════════╧══════════════════╧════════════════════╗ │ │ │ │ │ │ │ ║TMH - XXX Message Header ░║ │ │ │ │ │ │ │ ║ ediName = <&dollar>pfEdiName ║ │ │ │ │ │ │ │ ║ ediVersion = <&dollar>pfEdiVersion ║ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ ║XXX Details ║ │ │ │ │ │ │ │ ║ prodId = <&dollar>prodId ║ │ │ │ │ │ │ │ ║ prodSession = <&dollar>prodSessionId ║ │ │ │ │ │ │ │ ║ timeBtOffset = <&dollar>btTimeOffset, if available; otherwise write ║ │ │ │ │ │ │ │ ║ timeAdjusted = timeClock + timeBtOffset, if time offset is available; otherwise write ║ │ │ │ pf-008 Create <&envelope-closed>T401 record and write data fields: ┌┴┐ ║ ║ │ │ │ ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ ║TPS - XXX Process Summary ║ │ │ │ │ │ │ │ │ ║ processId = pf ║ │ │ │ │ │ │ │ │ ║ processRequester = <&dollar>pfRequester ║ │ │ │ │ │ │ │ │ ║ processStart = <&dollar>pfStart ║ │ │ │ │ │ │ │ │ ║ processStartRaw = <&dollar>pfStartRaw ║ │ │ │ │ │ │ │ │ ║ processElapsed = ║ │ │ │ │ │ │ │ │ ║ processEnd = ║ │ │ │ │ │ │ │ │ ║ processEndRaw = ║ │ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ │ ║TMH - XXX Message Footer ║ │ │ │ │ │ │ │ │ ║ ediStatus = <&dollar>pfEdiStatus ║ │ │ │ │ │ │ └┬┘ ╚══════════════╤════════════════╤═══════════════╤═════════════════╤═════════════════╤══════════════════╤══════════════════╤════════════════════╝ │ │ │ pf-009 : OK. │ │ │ │ │ │ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔═══╧═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╧═╧═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╧═════════════════════╧══════════════════╧═════════════════╧═════════════════╧════════════════╧═══════════════╧═════════════════╧═════════════════╧══════════════════╧══════════════════╧═══╗ ║The process activity unique to this sub-routine begins below this line. ░║ ╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╤═╤═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ ┌─┐ │XXX │ │ │ │YY TRX │ │Crypto │ │YYY │ │Data │ │Buzzer│ │LED│ │Button│ │Fuel │ │Power │ │Power │ ┌─┐ ║"│ │(A! │ │pset)│ │(A1 Chipset)│ │Chipset│ │Chipset│ │Logger│ └──────┘ └───┘ └──────┘ │Gauge│ │Primary│ │Back-up│ ║"│ └┬┘ └────│ │─────┘ └────────────┘ └───────┘ └───────┘ └──────┘ └─────┘ └───────┘ └───────┘ └┬┘ ┌┼┐ │ │ ┌┼┐ │ │ │ │ ┌┴┐ │ │ ┌┴┐ └┬┘