SUBROUTINE SGETC2( N, A, LDA, IPIV, JPIV, INFO ) * * -- LAPACK auxiliary routine (version 3.1) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * November 2006 * * .. Scalar Arguments .. INTEGER INFO, LDA, N * .. * .. Array Arguments .. INTEGER IPIV( * ), JPIV( * ) REAL A( LDA, * ) * .. * * Purpose * ======= * * SGETC2 computes an LU factorization with complete pivoting of the * n-by-n matrix A. The factorization has the form A = P * L * U * Q, * where P and Q are permutation matrices, L is lower triangular with * unit diagonal elements and U is upper triangular. * * This is the Level 2 BLAS algorithm. * * Arguments * ========= * * N (input) INTEGER * The order of the matrix A. N >= 0. * * A (input/output) REAL array, dimension (LDA, N) * On entry, the n-by-n matrix A to be factored. * On exit, the factors L and U from the factorization * A = P*L*U*Q; the unit diagonal elements of L are not stored. * If U(k, k) appears to be less than SMIN, U(k, k) is given the * value of SMIN, i.e., giving a nonsingular perturbed system. * * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,N). * * IPIV (output) INTEGER array, dimension(N). * The pivot indices; for 1 <= i <= N, row i of the * matrix has been interchanged with row IPIV(i). * * JPIV (output) INTEGER array, dimension(N). * The pivot indices; for 1 <= j <= N, column j of the * matrix has been interchanged with column JPIV(j). * * INFO (output) INTEGER * = 0: successful exit * > 0: if INFO = k, U(k, k) is likely to produce owerflow if * we try to solve for x in Ax = b. So U is perturbed to * avoid the overflow. * * Further Details * =============== * * Based on contributions by * Bo Kagstrom and Peter Poromaa, Department of Computing Science, * Umea University, S-901 87 Umea, Sweden. * * ===================================================================== * * .. Parameters .. REAL ZERO, ONE PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 ) * .. * .. Local Scalars .. INTEGER I, IP, IPV, J, JP, JPV REAL BIGNUM, EPS, SMIN, SMLNUM, XMAX * .. * .. External Subroutines .. EXTERNAL SGER, SLABAD, SSWAP * .. * .. External Functions .. REAL SLAMCH EXTERNAL SLAMCH * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX * .. * .. Executable Statements .. * * Set constants to control overflow * INFO = 0 EPS = SLAMCH( 'P' ) SMLNUM = SLAMCH( 'S' ) / EPS BIGNUM = ONE / SMLNUM CALL SLABAD( SMLNUM, BIGNUM ) * * Factorize A using complete pivoting. * Set pivots less than SMIN to SMIN. * DO 40 I = 1, N - 1 * * Find max element in matrix A * XMAX = ZERO DO 20 IP = I, N DO 10 JP = I, N IF( ABS( A( IP, JP ) ).GE.XMAX ) THEN XMAX = ABS( A( IP, JP ) ) IPV = IP JPV = JP END IF 10 CONTINUE 20 CONTINUE IF( I.EQ.1 ) $ SMIN = MAX( EPS*XMAX, SMLNUM ) * * Swap rows * IF( IPV.NE.I ) $ CALL SSWAP( N, A( IPV, 1 ), LDA, A( I, 1 ), LDA ) IPIV( I ) = IPV * * Swap columns * IF( JPV.NE.I ) $ CALL SSWAP( N, A( 1, JPV ), 1, A( 1, I ), 1 ) JPIV( I ) = JPV * * Check for singularity * IF( ABS( A( I, I ) ).LT.SMIN ) THEN INFO = I A( I, I ) = SMIN END IF DO 30 J = I + 1, N A( J, I ) = A( J, I ) / A( I, I ) 30 CONTINUE CALL SGER( N-I, N-I, -ONE, A( I+1, I ), 1, A( I, I+1 ), LDA, $ A( I+1, I+1 ), LDA ) 40 CONTINUE * IF( ABS( A( N, N ) ).LT.SMIN ) THEN INFO = N A( N, N ) = SMIN END IF * RETURN * * End of SGETC2 * END


Alerts:
Tests details:
Results summary of the tests.
td_lorawan_act_01 PASS
td_lorawan_act_02 PASS
td_lorawan_act_03 PASS
td_lorawan_act_04 PASS
td_lorawan_act_05 PASS
td_lorawan_deactivate PASS
TEST VERDICT: PASS
TD_LORAWAN_DEACTIVATE: Step information
Completed Step: S1ActOkToDeactivate
Next step: No next step.
Received from DUT:
tmst: 505332964, freq: 868.5, DR: SF8BW125
PHYPayload: 40538C5B88800400E061B2AD01B7F3 (Size: 15 bytes)
----------------------------------------------
PHY payload:
40538C5B88800400E061B2AD01B7F3
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: 538C5B88800400E061B2
----------------------------------------------
MAC payload information
FHDR: 538C5B88800400
----DevAddr: 885B8C53
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 4 (0004)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 61B2
==============================================
MIC: AD01B7F3
==============================================
Decrypted FRMPayload: 0002
(Key 0EE2D899F88B481C0B3A36BE0311C0AB)
Sending to DUT: 00
TEST CASE: td_lorawan_deactivate
Step 1: S1ActOkToDeactivate
Verifies TAOK and deactivates Test Mode.
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: Test Mode deactivation (payload 0x00).
Test ID: TD_LoRaWAN_DEACTIVATE
Objective: Deactivates test mode.
References: LoRaWAN Specification v1.0.2.
Pre-test conditions: The DUT is in Test Mode.
TD_LORAWAN_ACT_05: Step information
Completed Step: S6PongFinalStep
Next step: No next step.
Received from DUT:
tmst: 500333108, freq: 868.1, DR: SF8BW125
PHYPayload: 40538C5B88800300E061C824DEC838 (Size: 15 bytes)
----------------------------------------------
PHY payload:
40538C5B88800300E061C824DEC838
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: 538C5B88800300E061C8
----------------------------------------------
MAC payload information
FHDR: 538C5B88800300
----DevAddr: 885B8C53
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 3 (0003)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 61C8
==============================================
MIC: 24DEC838
==============================================
Decrypted FRMPayload: 040C
(Key 0EE2D899F88B481C0B3A36BE0311C0AB)
TD_LORAWAN_ACT_05: Step information
Completed Step: S5PongToPing
Next step: S6PongFinalStep
Received from DUT:
tmst: 495333244, freq: 868.5, DR: SF8BW125
PHYPayload: 40538C5B88800200E0113112425B02E7F26F (Size: 18 bytes)
----------------------------------------------
PHY payload:
40538C5B88800200E0113112425B02E7F26F
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: 538C5B88800200E0113112425B
----------------------------------------------
MAC payload information
FHDR: 538C5B88800200
----DevAddr: 885B8C53
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 2 (0002)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 113112425B
==============================================
MIC: 02E7F26F
==============================================
Decrypted FRMPayload: 04BEFD778C
(Key 0EE2D899F88B481C0B3A36BE0311C0AB)
Sending to DUT: 040B
TD_LORAWAN_ACT_05: Step information
Completed Step: S4ActokToPing
Next step: S5PongToPing
Received from DUT:
tmst: 490333388, freq: 868.3, DR: SF8BW125
PHYPayload: 40538C5B88800100E06109516E20AF (Size: 15 bytes)
----------------------------------------------
PHY payload:
40538C5B88800100E06109516E20AF
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: 538C5B88800100E06109
----------------------------------------------
MAC payload information
FHDR: 538C5B88800100
----DevAddr: 885B8C53
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 1 (0001)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 6109
==============================================
MIC: 516E20AF
==============================================
Decrypted FRMPayload: 0000
(Key 0EE2D899F88B481C0B3A36BE0311C0AB)
Sending to DUT: 04BDFC768B
TD_LORAWAN_ACT_05: Step information
Completed Step: S3DataToActivate
Next step: S4ActokToPing
Received from DUT:
tmst: 487039004, freq: 868.1, DR: SF8BW125
PHYPayload: 40538C5B88000000166DAA89D3BE41229A45D0AFC0D41E6FC912393F06 (Size: 29 bytes)
----------------------------------------------
PHY payload:
40538C5B88000000166DAA89D3BE41229A45D0AFC0D41E6FC912393F06
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: 538C5B88000000166DAA89D3BE41229A45D0AFC0D41E6FC9
----------------------------------------------
MAC payload information
FHDR: 538C5B88000000
----DevAddr: 885B8C53
----FCtrl: 00000000
--------ADR: 0
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 0 (0000)
----FOpts: None
FPort: 22
Encrypted FRMPayload: 6DAA89D3BE41229A45D0AFC0D41E6FC9
==============================================
MIC: 12393F06
==============================================
Decrypted FRMPayload:<PHONE_NUMBER>0000FE3E090D0503AB0000
(Key 0EE2D899F88B481C0B3A36BE0311C0AB)
Sending to DUT: 01010101
TD_LORAWAN_ACT_05: Step information
Completed Step: S2JoinrequestToAccept
Next step: S3DataToActivate
Received from DUT:
tmst: 476515380, freq: 868.5, DR: SF8BW125
PHYPayload:<PHONE_NUMBER>0101010101010101010101017C18595A3EEE (Size: 23 bytes)
----------------------------------------------
PHY payload:
00010101010101010101010101010101017C18595A3EEE
MHDR bits: 00000000 (JOIN_REQUEST)
MACPayload:<PHONE_NUMBER>01010101010101010101017C18
----------------------------------------------
Join Request information
AppEUI:<PHONE_NUMBER>010101
DevEUI:<PHONE_NUMBER>010101
DevNonce: 187C
==============================================
MIC: 595A3EEE
==============================================
Sending to DUT: 20CA5C1054A97B6B104088955166175F34C3311AA10F0EC8273C299EDD9BA7F6B1
Additional information: Session Updated. DevAddr: 885B8C53 DevEUI:<PHONE_NUMBER>010101 AppSKey: 0EE2D899F88B481C0B3A36BE0311C0AB NwkSKey: 96C25D08EE1D97364163584C5EBD238C AppKey: 2B7E151628AED2A6ABF7158809CF4F3C
TD_LORAWAN_ACT_05: Step information
Completed Step: S1ActokToTriggerJoin
Next step: S2JoinrequestToAccept
Received from DUT:
tmst: 475263500, freq: 867.3, DR: SF8BW125
PHYPayload: 401E8D9278801D00E09AE73E04A1A3 (Size: 15 bytes)
----------------------------------------------
PHY payload:
401E8D9278801D00E09AE73E04A1A3
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: 1E8D9278801D00E09AE7
----------------------------------------------
MAC payload information
FHDR: 1E8D9278801D00
----DevAddr: 78928D1E
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 29 (001D)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 9AE7
==============================================
MIC: 3E04A1A3
==============================================
Decrypted FRMPayload: E613
(Key FF7E151628AED2A6ABF7158809CF4F3C)
Sending to DUT: 06
TEST CASE: td_lorawan_act_05
Step 6: S6PongFinalStep
Checks the last PONG.
- Reception from DUT: PONG message.
- TAS sends: none.
Step 5: S5PongToPing
Waits for the PONG message and sends another PING, now using RX2.
- Reception from DUT: PONG message.
- TAS sends: PING message using RX2.
Step 4: S4ActokToPing
After receiving an Activation OK message with the current downlink counter, a PING message will be sent.
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: PING message in RX1.
Step 3: S3DataToActivate
A data message is expected, and the Test Mode will be activated after its reception
- Reception from DUT: DATA packet.
- TAS sends: Test Mode activation message to the DUT(DL packet with payload 0x01010101 sent to port 224).
Step 2: S2JoinRequestToAccept
Waits for a join request message. A Join Accept will be sent in response with the default configuration.
- Reception from DUT: Join Request message.
- TAS sends: Join Accept message.
Step 1: S1ActokToTriggerJoin
Waits and Activation Ok message with the current downlink counter of the session and, after it's received, a new session will be requested.
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: Trigger join request with test ID 6.
Test ID: TD_LoRaWAN_ACT_05
Objective: Uses Join-accept message to initiate a new session restoring the default LoRaWAN MAC parameters.
References: LoRaWAN Specification v1.0.2.
Pre-test conditions: The DUT is in Test Mode and supports Over The Air Activation (OTAA).
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.1.
({868.1: 4, 868.3: 2, 868.5: 4, 867.1: 1, 867.3: 4, 867.5: 6, 867.7: 3, 867.9: 4})
Count 28 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.5.
({868.1: 4, 868.3: 2, 868.5: 4, 867.1: 0, 867.3: 4, 867.5: 6, 867.7: 3, 867.9: 4})
Count 27 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.5.
({868.1: 4, 868.3: 2, 868.5: 4, 867.1: 0, 867.3: 4, 867.5: 5, 867.7: 3, 867.9: 4})
Count 26 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.9.
({868.1: 4, 868.3: 2, 868.5: 4, 867.1: 0, 867.3: 4, 867.5: 4, 867.7: 3, 867.9: 4})
Count 25 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.9.
({868.1: 4, 868.3: 2, 868.5: 4, 867.1: 0, 867.3: 4, 867.5: 4, 867.7: 3, 867.9: 3})
Count 24 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.3.
({868.1: 4, 868.3: 2, 868.5: 4, 867.1: 0, 867.3: 4, 867.5: 4, 867.7: 3, 867.9: 2})
Count 23 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.1.
({868.1: 4, 868.3: 1, 868.5: 4, 867.1: 0, 867.3: 4, 867.5: 4, 867.7: 3, 867.9: 2})
Count 22 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.3.
({868.1: 3, 868.3: 1, 868.5: 4, 867.1: 0, 867.3: 4, 867.5: 4, 867.7: 3, 867.9: 2})
Count 21 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.5.
({868.1: 3, 868.3: 1, 868.5: 4, 867.1: 0, 867.3: 3, 867.5: 4, 867.7: 3, 867.9: 2})
Count 20 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.5.
({868.1: 3, 868.3: 1, 868.5: 3, 867.1: 0, 867.3: 3, 867.5: 4, 867.7: 3, 867.9: 2})
Count 19 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.5.
({868.1: 3, 868.3: 1, 868.5: 3, 867.1: 0, 867.3: 3, 867.5: 3, 867.7: 3, 867.9: 2})
Count 18 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.9.
({868.1: 3, 868.3: 1, 868.5: 3, 867.1: 0, 867.3: 3, 867.5: 2, 867.7: 3, 867.9: 2})
Count 17 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.7.
({868.1: 3, 868.3: 1, 868.5: 3, 867.1: 0, 867.3: 3, 867.5: 2, 867.7: 3, 867.9: 1})
Count 16 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.5.
({868.1: 3, 868.3: 1, 868.5: 3, 867.1: 0, 867.3: 3, 867.5: 2, 867.7: 2, 867.9: 1})
Count 15 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.1.
({868.1: 3, 868.3: 1, 868.5: 2, 867.1: 0, 867.3: 3, 867.5: 2, 867.7: 2, 867.9: 1})
Count 14 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.3.
({868.1: 2, 868.3: 1, 868.5: 2, 867.1: 0, 867.3: 3, 867.5: 2, 867.7: 2, 867.9: 1})
Count 13 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.5.
({868.1: 2, 868.3: 1, 868.5: 2, 867.1: 0, 867.3: 2, 867.5: 2, 867.7: 2, 867.9: 1})
Count 12 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.7.
({868.1: 2, 868.3: 1, 868.5: 1, 867.1: 0, 867.3: 2, 867.5: 2, 867.7: 2, 867.9: 1})
Count 11 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.3.
({868.1: 2, 868.3: 1, 868.5: 1, 867.1: 0, 867.3: 2, 867.5: 2, 867.7: 1, 867.9: 1})
Count 10 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.9.
({868.1: 2, 868.3: 1, 868.5: 1, 867.1: 0, 867.3: 1, 867.5: 2, 867.7: 1, 867.9: 1})
Count 9 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.7.
({868.1: 2, 868.3: 1, 868.5: 1, 867.1: 0, 867.3: 1, 867.5: 2, 867.7: 1, 867.9: 0})
Count 8 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.3.
({868.1: 2, 868.3: 1, 868.5: 1, 867.1: 0, 867.3: 1, 867.5: 2, 867.7: 0, 867.9: 0})
Count 7 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.1.
({868.1: 2, 868.3: 0, 868.5: 1, 867.1: 0, 867.3: 1, 867.5: 2, 867.7: 0, 867.9: 0})
Count 6 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.3.
({868.1: 1, 868.3: 0, 868.5: 1, 867.1: 0, 867.3: 1, 867.5: 2, 867.7: 0, 867.9: 0})
Count 5 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.5.
({868.1: 1, 868.3: 0, 868.5: 1, 867.1: 0, 867.3: 0, 867.5: 2, 867.7: 0, 867.9: 0})
Count 4 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.5.
({868.1: 1, 868.3: 0, 868.5: 0, 867.1: 0, 867.3: 0, 867.5: 2, 867.7: 0, 867.9: 0})
Count 3 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:867.5.
({868.1: 1, 868.3: 0, 868.5: 0, 867.1: 0, 867.3: 0, 867.5: 1, 867.7: 0, 867.9: 0})
Count 2 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S4VerifyFrequencies
Next step: S4VerifyFrequencies
Received from DUT:
Received:868.1.
({868.1: 1, 868.3: 0, 868.5: 0, 867.1: 0, 867.3: 0, 867.5: 0, 867.7: 0, 867.9: 0})
Count 1 of 40 limit.
TD_LORAWAN_ACT_04: Step information
Completed Step: S3DataToActivate
Next step: S4VerifyFrequencies
Received from DUT:
tmst: 331973044, freq: 867.9, DR: SF8BW125
PHYPayload: 401E8D927800000016E486230592AD3363AD97CEC1F367951C2E05D1DB (Size: 29 bytes)
----------------------------------------------
PHY payload:
401E8D927800000016E486230592AD3363AD97CEC1F367951C2E05D1DB
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: 1E8D927800000016E486230592AD3363AD97CEC1F367951C
----------------------------------------------
MAC payload information
FHDR: 1E8D9278000000
----DevAddr: 78928D1E
----FCtrl: 00000000
--------ADR: 0
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 0 (0000)
----FOpts: None
FPort: 22
Encrypted FRMPayload: E486230592AD3363AD97CEC1F367951C
==============================================
MIC: 2E05D1DB
==============================================
Decrypted FRMPayload:<PHONE_NUMBER>0000FE3E090D0503AB0000
(Key EEDB17AC1D5A1ED4BA501F876613FB8B)
Sending to DUT: 01010101
TD_LORAWAN_ACT_04: Step information
Completed Step: S2JoinrequestToAccept
Next step: S3DataToActivate
Received from DUT:
tmst: 325494220, freq: 868.3, DR: SF8BW125
PHYPayload:<PHONE_NUMBER>010101010101010101010101A8AA60D40EC5 (Size: 23 bytes)
----------------------------------------------
PHY payload:
0001010101010101010101010101010101A8AA60D40EC5
MHDR bits: 00000000 (JOIN_REQUEST)
MACPayload:<PHONE_NUMBER>0101010101010101010101A8AA
----------------------------------------------
Join Request information
AppEUI:<PHONE_NUMBER>010101
DevEUI:<PHONE_NUMBER>010101
DevNonce: AAA8
==============================================
MIC: 60D40EC5
==============================================
Sending to DUT: 208C939ADE6717C7451AF0AD55F407A069625658A2E0FDE7A75C8097FCE26EEED7
Additional information: Session Updated. DevAddr: 78928D1E DevEUI:<PHONE_NUMBER>010101 AppSKey: EEDB17AC1D5A1ED4BA501F876613FB8B NwkSKey: E3D1D19AC2BF7BFF7FD8630C81D4AAE4 AppKey: 2B7E151628AED2A6ABF7158809CF4F3C
TD_LORAWAN_ACT_04: Step information
Completed Step: S1ActokToTriggerJoin
Next step: S2JoinrequestToAccept
Received from DUT:
tmst: 322241412, freq: 868.3, DR: SF8BW125
PHYPayload: 40F46B6110800400E0018F4EBE75C5 (Size: 15 bytes)
----------------------------------------------
PHY payload:
40F46B6110800400E0018F4EBE75C5
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: F46B6110800400E0018F
----------------------------------------------
MAC payload information
FHDR: F46B6110800400
----DevAddr: 10616BF4
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 4 (0004)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 018F
==============================================
MIC: 4EBE75C5
==============================================
Decrypted FRMPayload: E3A9
(Key FF7E151628AED2A6ABF7158809CF4F3C)
Sending to DUT: 06
TEST CASE: td_lorawan_act_04
Step 4: S4VerifyFrequencies
The test stays in this step and verifies that all the frequencies are being used.
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: none.
Step 3: S3DataToActivate
A data message is expected, and the Test Mode will be activated after its reception.
- Reception from DUT: DATA packet.
- TAS sends: Test Mode activation message to the DUT(DL packet with payload 0x01010101 sent to port 224).
Step 2: S2JoinRequestToAccept
Waits for a join request message. A Join Accept will be sent in response configuring new channels (using CFList).
- Reception from DUT: Join Request message.
- TAS sends: Join Accept message configuring CFList to add new channels.
Step 1: S1ActokToTriggerJoin
Waits and Activation Ok message with the current downlink counter ofthe session and, after it's received, a new session will be requested
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: Trigger join request with test ID 6.
Test ID: TD_LoRaWAN_ACT_04
Objective: Test Over the Air Activation configuring 5 new channels.
References: LoRaWAN Specification v1.0.2.
Pre-test conditions: The DUT is in Test Mode and supports Over The Air Activation (OTAA).
TD_LORAWAN_ACT_03: Step information
Completed Step: S6PongFinalStep
Next step: No next step.
Received from DUT:
tmst: 312262172, freq: 868.3, DR: SF8BW125
PHYPayload: 40F46B6110800300E06F09F64F459A14C223E9EEF236D84A4178 (Size: 26 bytes)
----------------------------------------------
PHY payload:
40F46B6110800300E06F09F64F459A14C223E9EEF236D84A4178
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: F46B6110800300E06F09F64F459A14C223E9EEF236
----------------------------------------------
MAC payload information
FHDR: F46B6110800300
----DevAddr: 10616BF4
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 3 (0003)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 6F09F64F459A14C223E9EEF236
==============================================
MIC: D84A4178
==============================================
Decrypted FRMPayload: 046FED35AF0A1FA77D3D8F5E78
(Key 61BA27975F234126F4330613A93AE3B3)
TD_LORAWAN_ACT_03: Step information
Completed Step: S5PongToPing
Next step: S6PongFinalStep
Received from DUT:
tmst: 302262452, freq: 868.1, DR: SF8BW125
PHYPayload: 40F46B6110800200E05773B0F9D2BCE7552EC3E72813AFAFA24D (Size: 26 bytes)
----------------------------------------------
PHY payload:
40F46B6110800200E05773B0F9D2BCE7552EC3E72813AFAFA24D
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: F46B6110800200E05773B0F9D2BCE7552EC3E72813
----------------------------------------------
MAC payload information
FHDR: F46B6110800200
----DevAddr: 10616BF4
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 2 (0002)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 5773B0F9D2BCE7552EC3E72813
==============================================
MIC: AFAFA24D
==============================================
Decrypted FRMPayload: 041FB0AD4A166BF7C43C9F6814
(Key 61BA27975F234126F4330613A93AE3B3)
Sending to DUT: 046EEC34AE091EA67C3C8E5D77
TD_LORAWAN_ACT_03: Step information
Completed Step: S4ActokToPing
Next step: S5PongToPing
Received from DUT:
tmst: 297242108, freq: 868.3, DR: SF8BW125
PHYPayload: 40F46B6110800100E06861E9B73F54 (Size: 15 bytes)
----------------------------------------------
PHY payload:
40F46B6110800100E06861E9B73F54
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: F46B6110800100E06861
----------------------------------------------
MAC payload information
FHDR: F46B6110800100
----DevAddr: 10616BF4
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 1 (0001)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 6861
==============================================
MIC: E9B73F54
==============================================
Decrypted FRMPayload: 0000
(Key 61BA27975F234126F4330613A93AE3B3)
Sending to DUT: 041EAFAC49156AF6C33B9E6713
TD_LORAWAN_ACT_03: Step information
Completed Step: S3DataToActivate
Next step: S4ActokToPing
Received from DUT:
tmst: 291946812, freq: 868.1, DR: SF8BW125
PHYPayload: 40F46B611000000016D32954CE3373935882C4EA91FDC8BA8EAE4C847C (Size: 29 bytes)
----------------------------------------------
PHY payload:
40F46B611000000016D32954CE3373935882C4EA91FDC8BA8EAE4C847C
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: F46B611000000016D32954CE3373935882C4EA91FDC8BA8E
----------------------------------------------
MAC payload information
FHDR: F46B6110000000
----DevAddr: 10616BF4
----FCtrl: 00000000
--------ADR: 0
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 0 (0000)
----FOpts: None
FPort: 22
Encrypted FRMPayload: D32954CE3373935882C4EA91FDC8BA8E
==============================================
MIC: AE4C847C
==============================================
Decrypted FRMPayload:<PHONE_NUMBER>0000FE3E090D0503AB0000
(Key 61BA27975F234126F4330613A93AE3B3)
Sending to DUT: 01010101
TD_LORAWAN_ACT_03: Step information
Completed Step: S2JoinrequestToAccept
Next step: S3DataToActivate
Received from DUT:
tmst: 284837156, freq: 868.5, DR: SF8BW125
PHYPayload:<PHONE_NUMBER>01010101010101010101010195B21F29F43B (Size: 23 bytes)
----------------------------------------------
PHY payload:
000101010101010101010101010101010195B21F29F43B
MHDR bits: 00000000 (JOIN_REQUEST)
MACPayload:<PHONE_NUMBER>010101010101010101010195B2
----------------------------------------------
Join Request information
AppEUI:<PHONE_NUMBER>010101
DevEUI:<PHONE_NUMBER>010101
DevNonce: B295
==============================================
MIC: 1F29F43B
==============================================
Sending to DUT: 209A51F68A0C7C5665F027F054EDDCB0572A225F5C72B4B5B420F705F8C536AD14
Additional information: Session Updated. DevAddr: 10616BF4 DevEUI:<PHONE_NUMBER>010101 AppSKey: 61BA27975F234126F4330613A93AE3B3 NwkSKey: 53BD806D9B31FFF66E54233C5C24E42E AppKey: 2B7E151628AED2A6ABF7158809CF4F3C
TD_LORAWAN_ACT_03: Step information
Completed Step: S1ActokToTriggerJoin
Next step: S2JoinrequestToAccept
Received from DUT:
tmst: 283373364, freq: 868.5, DR: SF8BW125
PHYPayload: 40DE8D6845800400E05D950ECC0DCE (Size: 15 bytes)
----------------------------------------------
PHY payload:
40DE8D6845800400E05D950ECC0DCE
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: DE8D6845800400E05D95
----------------------------------------------
MAC payload information
FHDR: DE8D6845800400
----DevAddr: 45688DDE
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 4 (0004)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 5D95
==============================================
MIC: 0ECC0DCE
==============================================
Decrypted FRMPayload: A82A
(Key FF7E151628AED2A6ABF7158809CF4F3C)
Sending to DUT: 06
TEST CASE: td_lorawan_act_03
Step 6: S6PongFinalStep
Checks the last PONG.
- Reception from DUT: PONG message.
- TAS sends: none.
Step 5: S5PongToPing
Waits for the PONG message and sends another PING, now using RX2.
- Reception from DUT: PONG message.
- TAS sends: PING message using RX2.
Step 4: S4ActokToPing
After receiving an TAOK message with the current downlink counter, a PING message will be sent.
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: PING message in RX1 with the configured 3 seconds delay.
Step 3: S3DataToActivate
A data message is expected, and the Test Mode will be activated after its reception.-
- Reception from DUT: DATA packet.
- TAS sends: Test Mode activation message to the DUT(DL packet with payload 0x01010101 sent to port 224).
Step 2: S2JoinRequestToAccept
Waits for a join request message. A Join Accept will be sent in response configuring RxDelay=3s.
- Reception from DUT: Join Request message.
- TAS sends: Join Accept message configuring RXDalay=3s.
Step 1: S1ActokToTriggerJoin
Waits for a TAOK (Activation Ok) message with the current downlink counter of the session and, after it's received, a new session will be requested.
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: Trigger join request with test ID 6.
Test ID: TD_LoRaWAN_ACT_03
Objective: Test Over the Air Activation modifying the RX windows delay. Check that the node can join using OTAA in RX1 and RX2.
References: LoRaWAN Specification v1.0.2.
Pre-test conditions: The DUT is in Test Mode and supports Over The Air Activation (OTAA).
TD_LORAWAN_ACT_02: Step information
Completed Step: S6PongFinalStep
Next step: No next step.
Received from DUT:
tmst: 278404220, freq: 868.3, DR: SF8BW125
PHYPayload: 40DE8D6845800300E0869DBA2A734C34585A435C09C5A0D4CE4E0C52C010 (Size: 30 bytes)
----------------------------------------------
PHY payload:
40DE8D6845800300E0869DBA2A734C34585A435C09C5A0D4CE4E0C52C010
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: DE8D6845800300E0869DBA2A734C34585A435C09C5A0D4CE4E
----------------------------------------------
MAC payload information
FHDR: DE8D6845800300
----DevAddr: 45688DDE
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 3 (0003)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 869DBA2A734C34585A435C09C5A0D4CE4E
==============================================
MIC: 0C52C010
==============================================
Decrypted FRMPayload: 042C5EB622C13F387AE85AD901F4A0B86B
(Key D6BDB9F0E13C11C8B1F62C81B0118BD4)
TD_LORAWAN_ACT_02: Step information
Completed Step: S5PongToPing
Next step: S6PongFinalStep
Received from DUT:
tmst: 273394124, freq: 868.1, DR: SF8BW125
PHYPayload: 40DE8D6845800200E09DB66D48402E2E83FE2CA862EAA0BB (Size: 24 bytes)
----------------------------------------------
PHY payload:
40DE8D6845800200E09DB66D48402E2E83FE2CA862EAA0BB
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: DE8D6845800200E09DB66D48402E2E83FE2CA8
----------------------------------------------
MAC payload information
FHDR: DE8D6845800200
----DevAddr: 45688DDE
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 2 (0002)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 9DB66D48402E2E83FE2CA8
==============================================
MIC: 62EAA0BB
==============================================
Decrypted FRMPayload: 042515151B248635FA3781
(Key D6BDB9F0E13C11C8B1F62C81B0118BD4)
Sending to DUT: 042B5DB521C03E3779E759D800F39FB76A
TD_LORAWAN_ACT_02: Step information
Completed Step: S4ActokToPing
Next step: S5PongToPing
Received from DUT:
tmst: 268373780, freq: 868.3, DR: SF8BW125
PHYPayload: 40DE8D6845800100E03A10A55CBCD6 (Size: 15 bytes)
----------------------------------------------
PHY payload:
40DE8D6845800100E03A10A55CBCD6
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: DE8D6845800100E03A10
----------------------------------------------
MAC payload information
FHDR: DE8D6845800100
----DevAddr: 45688DDE
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 1 (0001)
----FOpts: None
FPort: 224
Encrypted FRMPayload: 3A10
==============================================
MIC: A55CBCD6
==============================================
Decrypted FRMPayload: 0000
(Key D6BDB9F0E13C11C8B1F62C81B0118BD4)
Sending to DUT: 042414141A238534F93680
TD_LORAWAN_ACT_02: Step information
Completed Step: S3DataToActivate
Next step: S4ActokToPing
Received from DUT:
tmst: 266926028, freq: 868.1, DR: SF8BW125
PHYPayload: 40DE8D684500000016BA33AEF3E65FE010D527B400D86D9EF0890D29D3 (Size: 29 bytes)
----------------------------------------------
PHY payload:
40DE8D684500000016BA33AEF3E65FE010D527B400D86D9EF0890D29D3
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload: DE8D684500000016BA33AEF3E65FE010D527B400D86D9EF0
----------------------------------------------
MAC payload information
FHDR: DE8D6845000000
----DevAddr: 45688DDE
----FCtrl: 00000000
--------ADR: 0
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 0 (0000)
----FOpts: None
FPort: 22
Encrypted FRMPayload: BA33AEF3E65FE010D527B400D86D9EF0
==============================================
MIC: 890D29D3
==============================================
Decrypted FRMPayload:<PHONE_NUMBER>0000FE3E090D0503AB0000
(Key D6BDB9F0E13C11C8B1F62C81B0118BD4)
Sending to DUT: 01010101
TD_LORAWAN_ACT_02: Step information
Completed Step: S2JoinRequestToAccept
Next step: S3DataToActivate
Received from DUT:
tmst: 259367172, freq: 868.3, DR: SF8BW125
PHYPayload:<PHONE_NUMBER>0101010101010101010101014619658BABBE (Size: 23 bytes)
----------------------------------------------
PHY payload:
00010101010101010101010101010101014619658BABBE
MHDR bits: 00000000 (JOIN_REQUEST)
MACPayload:<PHONE_NUMBER>01010101010101010101014619
----------------------------------------------
Join Request information
AppEUI:<PHONE_NUMBER>010101
DevEUI:<PHONE_NUMBER>010101
DevNonce: 1946
==============================================
MIC: 658BABBE
==============================================
Sending to DUT: 20CFEC1837822CBC93583F76F2C1CE6C8A88C7EB5B064A7A79273DFD87C16FF7B6
Additional information: Session Updated. DevAddr: 45688DDE DevEUI:<PHONE_NUMBER>010101 AppSKey: D6BDB9F0E13C11C8B1F62C81B0118BD4 NwkSKey: DBD5B5D75E9D94A7A5DCBA79824D9F98 AppKey: 2B7E151628AED2A6ABF7158809CF4F3C
TD_LORAWAN_ACT_02: Step information
Completed Step: S1ActokToTriggerJoin
Next step: S2JoinRequestToAccept
Received from DUT:
tmst: 258115276, freq: 868.1, DR: SF8BW125
PHYPayload:<PHONE_NUMBER>800200E0E0C27B735131 (Size: 15 bytes)
----------------------------------------------
PHY payload:
4001010101800200E0E0C27B735131
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload:<PHONE_NUMBER>0200E0E0C2
----------------------------------------------
MAC payload information
FHDR:<PHONE_NUMBER>0200
----DevAddr: 01010101
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 2 (0002)
----FOpts: None
FPort: 224
Encrypted FRMPayload: E0C2
==============================================
MIC: 7B735131
==============================================
Decrypted FRMPayload: 0000
(Key FF7E151628AED2A6ABF7158809CF4F3C)
Sending to DUT: 06
TEST CASE: td_lorawan_act_02
Step 6: S6PongFinalStep
Checks the last PONG.
- Reception from DUT: PONG message.
- TAS sends: none.
Step 5: S5PongToPing
Waits for the PONG message and sends another PING, now using RX2.
- Reception from DUT: PONG message.
- TAS sends: PING message using RX2.
Step 4: S4ActokToPing
After receiving an TAOK (Activation OK) message with the current downlink counter, a PING message will be sent.
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: PING message in RX1 using a DR offset of 2.
Step 3: S3DataToActivate
A data message is expected, and the Test Mode will be activated after its reception.
- Reception from DUT: DATA packet.
- TAS sends: Test Mode activation message to the DUT(DL packet with payload 0x01010101 sent to port 224).
Step 2: S2JoinRequestToAccept
Updates the session information of the device.
- Reception from DUT: Join Request message.
- TAS sends: Join Accept message configuring DLSettings (RX1DRoffset=2 and RX2DR=3).
Step 1: S1ActokToTriggerJoin
Waits a TAOK (Activation Ok) message with the current downlink counter ofthe session and, after it's received, a new session request will be triggered.
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: Trigger join request with Test ID 6.
Test ID: TD_LoRaWAN_ACT_02
Objective: Test Over the Air Activation, changing DR of RX windows. Check that the node can join using OTAA in RX1 and RX2.
References: LoRaWAN Specification v1.0.2.
Pre-test conditions: The DUT is in Test Mode and supports Over The Air Activation (OTAA).
TD_LORAWAN_ACT_01: Step information
Completed Step: S2ActokFinalStep
Next step: No next step.
Received from DUT:
tmst: 253115412, freq: 868.3, DR: SF8BW125
PHYPayload:<PHONE_NUMBER>800100E0FD51D4B7BBEA (Size: 15 bytes)
----------------------------------------------
PHY payload:
4001010101800100E0FD51D4B7BBEA
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload:<PHONE_NUMBER>0100E0FD51
----------------------------------------------
MAC payload information
FHDR:<PHONE_NUMBER>0100
----DevAddr: 01010101
----FCtrl: 10000000
--------ADR: 1
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 1 (0001)
----FOpts: None
FPort: 224
Encrypted FRMPayload: FD51
==============================================
MIC: D4B7BBEA
==============================================
Decrypted FRMPayload: 0000
(Key FF7E151628AED2A6ABF7158809CF4F3C)
TD_LORAWAN_ACT_01: Step information
Completed Step: S1DataToActivate
Next step: S2ActokFinalStep
Received from DUT:
tmst: 251908868, freq: 868.1, DR: SF8BW125
PHYPayload:<PHONE_NUMBER>000000164A3BB6E8FA72BBC111A6E183DC041807843AFEE1 (Size: 29 bytes)
----------------------------------------------
PHY payload:
4001010101000000164A3BB6E8FA72BBC111A6E183DC041807843AFEE1
MHDR bits: 01000000 (UNCONFIRMED_UP)
MACPayload:<PHONE_NUMBER>0000164A3BB6E8FA72BBC111A6E183DC041807
----------------------------------------------
MAC payload information
FHDR:<PHONE_NUMBER>0000
----DevAddr: 01010101
----FCtrl: 00000000
--------ADR: 0
--------ACK: 0
--------ADRACKReq (Only for UL): 0
--------FPending (Only for DL): None
--------FOptsLen: 0
----FCnt: 0 (0000)
----FOpts: None
FPort: 22
Encrypted FRMPayload: 4A3BB6E8FA72BBC111A6E183DC041807
==============================================
MIC: 843AFEE1
==============================================
Decrypted FRMPayload:<PHONE_NUMBER>0000FE3E090D0503AB0000
(Key FF7E151628AED2A6ABF7158809CF4F3C)
Sending to DUT: 01010101
TEST CASE: td_lorawan_act_01
Step 2: S2ActokFinalStep
The test is expecting a Test Activation Ok message with the current downlink counter
- Reception from DUT: TAOK message with the downlink counter.
- TAS sends: none
Step 1: S1DataToActivate
Wait any data from the DUT to activate Test Mode.
- Reception from DUT: DATA packet.
- TAS sends: Test Mode activation message to the DUT (DL packet with payload 0x01010101 sent to port 224). The payload is encrypted with the AppSKey.
Test ID: TD_LoRaWAN_ACT_01
Objective: Check that the node can join using ABP and enter Test Mode Activation.
References: LoRaWAN Specification v1.0.2.
Pre-test conditions:
The end device has a pre-configured DevAddr, NwkSKey and AppSKey.
The Test Application Server has the end device registered in its device list
and knows its NwkSkey, AppSKey and DevAddr.
Device Personalization Information.
DevAddr: ('01010101',) DevEUI: ('0101010101010101',) AppKey: ('2B7E151628AED2A6ABF7158809CF4F3C',) AppSKey: ('FF7E151628AED2A6ABF7158809CF4F3C',) NwkSKey: 007E151628AED2A6ABF7158809CF4F3C
Test Cases to be excecuted.
TCs list: td_lorawan_act_01 td_lorawan_act_02 td_lorawan_act_03 td_lorawan_act_04 td_lorawan_act_05 td_lorawan_deactivate
Agent configuration tutorial.
1-Configure the Packet Forwarder on the LoRa Gateway.: e.g. Agent UDP port (default 1700) and the host IP on gateway's local.conf file
2-Set AMQP Broker URL: e.g.: export AMQP_URL=amqp://guest:guest@localhost:5672/
3-Set Packet Forwarder UDP PORT (LoRa Gateway UDP Port): e.g.: export AGENT_PORT=1700
4-Start Agent Service: make start_agent


How does this page track page views?
- On Page Load
- This page disables the Parse.ly JS autotrack setting, and instead creates a callback to be fired on page load.
- On Button Click
- Clicking the button below will trigger a similar tracking event.
Thirsty for more?
- Open up the developer console to see network activity and log message from this example.
- Check out the docs on tracking.
- Check the source on github. Pull requests welcome!


Home
Events
News
About
Contact
Log In
Contact Us
Swing by for a cup of coffee, or leave us a feedback:
Name
What do you think about our initiative of having PICT-CSI student's branch?
Great
Good
Bad
How would you rate our Events?
0-3
4-7
7-10
OR
Drop us your true words at:
pictcsi@gmail.com


head: "blocks/parent.html" header: "nested-extends.html" body: "blocks/nested-extends.html" footer: "nested-extends.html" foot: "blocks/parent.html"


FlyEasy!
Home
(current)
Search Flights
Cancel Booking
Tom Sawyer
Edit Profile
Cancel Bookings
Logout
Departing From
Arriving To
Departure DateTime
Travelers
Search
Search Results
F_191
Spicejet
Kolkata
06:50
Chennai
07:30
INR 2030
Book
F_191
Vistara
Kolkata
07:15
Chennai
08:05
INR 2800
Book
F_201
Indigo
Kolkata
7:30
Chennai
08:30
INR 3050
Book


[gecode-users] Formatting of Int view output
Christian Schulte
cschulte at kth.se
Wed Dec 17 10:49:57 CET 2008
Hi, it's now fixed in 3.0 (apart from some stuff that's still changing). We
also made the stuff working with output streams using arbitrary character
sets.
Thanks again
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
-----Original Message-----
From: Christian Schulte [mailto:cschulte at kth.se]
Sent: Friday, November 21, 2008 10:28 AM
To: 'Chris Mears'; 'Gecode Users mailing list'
Subject: RE: [gecode-users] Formatting of Int view output
Hi Chris,
thanks for pointing out that bug. The fix is even easier (but your stuff of
course works as well): the problem is that we do not thread through the
state of the output stream.
We'll fix it for 3.0
Thanks
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Chris Mears
Sent: Friday, November 21, 2008 3:51 AM
To: Gecode Users mailing list
Subject: [gecode-users] Formatting of Int view output
Hello,
In Gecode 2.2.0 the formatting of integer variables doesn't quite work
correctly. For example, I tried to print a matrix of variables with
padding, like this:
for (int i = 0 ; i < 6 ; i++)
{
for (int j = 0 ; j < 6 ; j++)
cout << setw(15) << m(i,j);
cout << endl;
}
"m" is a Matrix<IntVarArray>. "setw(15)" is intended to make each
element of the matrix use 15 characters, right-justified. The output
looks like this (fixed-width font required):
3 {1..2,4..6} {1..2,4..6}
[4..6] {2,4..6} {1..2,5}
[1..2] {1..3,5..6} [1..3]
{2,5} {1..3,5..6} 4
[4..6] [2..6] [1..5]
[4..6] [2..6] {1..3,5}
[1..2] [5..6] [4..5] 3
[4..6] [1..2]
[4..6] [2..6] [2..6] 1
[3..6] {2..3,5}
[4..5] [1..5] [1..5]
{2,4..5} [1..5] 6
The problem can be seen in the first item in the second row. In the
first row, the "3" is correctly placed, but beneath it the "[1..2]" is
in the wrong spot -- the "]" should be directly beneath the "3". The
reason is that the first thing printed -- the "[" -- is padded, and the
rest of the range isn't. That is, because the range is printed
piece-by-piece, only the first piece is padded.
I do not know the proper C++ solution, but it seems like this would
work. The idea is to print the entire range "[1..2]" as one unit. In
gecode/int/view/print.cc, I changed the print_view method to build up
the range in a stringstream and then print that at the end. This fixes
the problem I saw. There are other places (e.g. print_scale, and the
Bool versions) where this would need to be fixed too.
Is this the right way to do it?
template <class View>
inline static std::ostream&
print_view(std::ostream& os, const View& x) {
std::stringstream ss;
if (x.assigned()) {
ss << x.val();
} else if (x.range()) {
ss << '[' << x.min() << ".." << x.max() << ']';
} else {
ss << '{';
ViewRanges<View> r(x);
while (true) {
if (r.min() == r.max()) {
ss << r.min();
} else {
ss << r.min() << ".." << r.max();
}
++r;
if (!r()) break;
ss << ',';
}
ss << '}';
}
return os << ss.str();
}
_______________________________________________
Gecode users mailing list
users at gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users
More information about the gecode-users
mailing list


The ZendService\SlideShare\SlideShare component is used to interact with the slideshare.net web services for hosting slide shows online. With this component, you can embed slide shows which are hosted on this web site within a web site and even upload new slide shows to your account.
In order to use the ZendService\SlideShare\SlideShare component you must first create an account on the slideshare.net servers (more information can be found here) in order to receive an API key, username, password and shared secret value – all of which are needed in order to use the ZendService\SlideShare\SlideShare component.
Once you have setup an account, you can begin using the ZendService\SlideShare\SlideShare component by creating a new instance of the ZendService\SlideShare\SlideShare object and providing these values as shown below:
1 2 3 4 5 | // Create a new instance of the component
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
|
All slide shows in the ZendService\SlideShare\SlideShare component are represented using the ZendService\SlideShare\SlideShow object (both when retrieving and uploading new slide shows). For your reference a pseudo-code version of this class is provided below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | class ZendService\SlideShare\SlideShow {
/**
* Retrieves the location of the slide show
*/
public function getLocation() {
return $this->_location;
}
/**
* Gets the transcript for this slide show
*/
public function getTranscript() {
return $this->_transcript;
}
/**
* Adds a tag to the slide show
*/
public function addTag($tag) {
$this->_tags[] = (string) $tag;
return $this;
}
/**
* Sets the tags for the slide show
*/
public function setTags(Array $tags) {
$this->_tags = $tags;
return $this;
}
/**
* Gets all of the tags associated with the slide show
*/
public function getTags() {
return $this->_tags;
}
/**
* Sets the filename on the local filesystem of the slide show
* (for uploading a new slide show)
*/
public function setFilename($file) {
$this->_slideShowFilename = (string) $file;
return $this;
}
/**
* Retrieves the filename on the local filesystem of the slide show
* which will be uploaded
*/
public function getFilename() {
return $this->_slideShowFilename;
}
/**
* Gets the ID for the slide show
*/
public function getId() {
return $this->_slideShowId;
}
/**
* Retrieves the HTML embed code for the slide show
*/
public function getEmbedCode() {
return $this->_embedCode;
}
/**
* Retrieves the Thumbnail URi for the slide show
*/
public function getThumbnailUrl() {
return $this->_thumbnailUrl;
}
/**
* Sets the title for the Slide show
*/
public function setTitle($title) {
$this->_title = (string) $title;
return $this;
}
/**
* Retrieves the Slide show title
*/
public function getTitle() {
return $this->_title;
}
/**
* Sets the description for the Slide show
*/
public function setDescription($desc) {
$this->_description = (string) $desc;
return $this;
}
/**
* Gets the description of the slide show
*/
public function getDescription() {
return $this->_description;
}
/**
* Gets the numeric status of the slide show on the server
*/
public function getStatus() {
return $this->_status;
}
/**
* Gets the textual description of the status of the slide show on
* the server
*/
public function getStatusDescription() {
return $this->_statusDescription;
}
/**
* Gets the permanent link of the slide show
*/
public function getPermaLink() {
return $this->_permalink;
}
/**
* Gets the number of views the slide show has received
*/
public function getNumViews() {
return $this->_numViews;
}
}
|
Note
The above pseudo-class only shows those methods which should be used by end-user developers. Other available methods are internal to the component.
When using the ZendService\SlideShare\SlideShare component, this data class will be used frequently to browse or add new slide shows to or from the web service.
The simplest usage of the ZendService\SlideShare\SlideShare component is the retrieval of a single slide show by slide show ID provided by the slideshare.net application and is done by calling the getSlideShow() method of a ZendService\SlideShare\SlideShare object and using the resulting ZendService\SlideShare\SlideShow object as shown.
1 2 3 4 5 6 7 8 9 10 | // Create a new instance of the component
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
$slideshow = $ss->getSlideShow(123456);
print "Slide Show Title: {$slideshow->getTitle()}
\n";
print "Number of views: {$slideshow->getNumViews()}
\n";
|
If you do not know the specific ID of a slide show you are interested in retrieving, you can retrieving groups of slide shows by using one of three methods:
Slide shows from a specific account
You can retrieve slide shows from a specific account by using the getSlideShowsByUsername() method and providing the username from which the slide shows should be retrieved
Slide shows which contain specific tags
You can retrieve slide shows which contain one or more specific tags by using the getSlideShowsByTag() method and providing one or more tags which the slide show must have assigned to it in order to be retrieved
Slide shows by group
You can retrieve slide shows which are a member of a specific group using the getSlideShowsByGroup() method and providing the name of the group which the slide show must belong to in order to be retrieved
Each of the above methods of retrieving multiple slide shows a similar approach is used. An example of using each method is shown below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // Create a new instance of the component
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
$starting_offset = 0;
$limit = 10;
// Retrieve the first 10 of each type
$ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
$ss_tags = $ss->getSlideShowsByTag('zend', $starting_offset, $limit);
$ss_group = $ss->getSlideShowsByGroup('mygroup', $starting_offset, $limit);
// Iterate over the slide shows
foreach ($ss_user as $slideshow) {
print "Slide Show Title: {$slideshow->getTitle}
\n";
}
|
By default, ZendService\SlideShare\SlideShare will cache any request against the web service automatically to the filesystem (default path /tmp) for 12 hours. If you desire to change this behavior, you must provide your own ZendCacheCache object using the setCacheObject() method as shown:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $frontendOptions = array(
'lifetime' => 7200,
'automatic_serialization' => true);
$backendOptions = array(
'cache_dir' => '/webtmp/');
$cache = Zend\Cache\Cache::factory('Core',
'File',
$frontendOptions,
$backendOptions);
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
$ss->setCacheObject($cache);
$ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
|
If for whatever reason you would like to change the behavior of the HTTP client when making the web service request, you can do so by creating your own instance of the Zend\Http\Client object (see ZendHttp). This is useful for instance when it is desirable to set the timeout for the connection to something other then default as shown:
1 2 3 4 5 6 7 8 9 | $client = new Zend\Http\Client();
$client->setConfig(array('timeout' => 5));
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
$ss->setHttpClient($client);
$ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
|
Note: You need to stay logged into your GitHub account to contribute to the documentation.
Enter search terms or a module, class or function name.
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.


We'll be back soon
We're carrying out some important updates to our service.
Try again later.
Contact us
Call 0800 100 900 (8am to 10pm, 7 days a week) to speak to an adviser about jobs, careers, learning or training.
We're carrying out some important updates to our service.
Try again later.
Call 0800 100 900 (8am to 10pm, 7 days a week) to speak to an adviser about jobs, careers, learning or training.


◆ HttpResponse()
| HttpResponse::HttpResponse |
( |
| ) |
|
|
inline |
◆ get_header()
| std::string HttpResponse::get_header |
( |
std::string |
key | ) |
|
|
inline |
◆ get_int_header()
| int HttpResponse::get_int_header |
( |
std::string |
key | ) |
|
|
inline |
◆ body
| std::vector<char> HttpResponse::body |
◆ headers
| std::unordered_map<std::string, std::string> HttpResponse::headers |
◆ http_version
| std::string HttpResponse::http_version |
◆ status_code
| int HttpResponse::status_code |
◆ status_message
| std::string HttpResponse::status_message |
The documentation for this struct was generated from the following file:


It's an opration that utilizes agricultural technogies to reduce europe's energy dependency on Russian oil and gas.
The Europe depends on natural gas from Russia to heat their homes and make chemical fertilizer.
Its key technology is compost heat recovery(CHR), which has been researched for many years and have various types in different scales.* ref 1
The mechanism of CHR is quite simple: To harvest heat generated from aerobic fermentation of a enclosed compost pile.
One can easily start an aerobic compost pile with a broad spectrum of raw materials.
If the compost is enclosed in a bin or tumbler barrel, the weather and tempratures outside can hardly influence the fermentation process.
Therefore, this technology is neither limited by raw material nor environment and it can be performed throughtout all Europe.
This operation will be conducted mainly by volunteers although cooperations with governments is also possible.
The S.A.O. team will crate a website to share knowleges and teach local practiioners to build up CHR systems which are suitable for their needs.
The team will also build up a platform for practitioners to buy and sell compost / crops with eachother to makersure that everything produced will not be wasted.
The S.A.O will take following steps：
1.Develop and build serveral test CHR systems to find the best designs.
2.S.A.O Development team will establish a web platfrom.
This site will provide local participants with blueprints and informations to build suitable CHR systems.
This site also has a platform for users to echange the compost and crop they created.
3.Recruit participants around the world.
4.Publish results/statistics periodicaly and keep improving CHR systems. Draft of a CHR reactor
What is its benefit?
1.Most people who supports Ukraine can't directly fight in Ukraine terrain.
This non-military operation which can be performed at one's backyard will both help Ukraine and put pressure on Russia
2.S.A.O is a non-governmental organization which is not limited by bureaucracy.
3.The oprations will be led by local practitioners to be more agile.
4.Help refugees develop self-reliance by growing their own food and make their own heat.
This will sustain thier status in local communities.
5.By stablizing food prices and lowering energy demand, the Ukraine and its ally will have more room in negotiation
6.Create new jobs that never existed before
7.If the Europe, which is among the top buyers of Russian energy, can cut off this reliance, new oligoarchs will be difficult to rise.
ref1:
Heat Recovery from Composting: A Comprehensive Review of
System Design, Recovery Rate, and Utilization
Matthew M. Smith, John D. Aber & Robert Rynk
https://www.tandfonline.com/doi/full/10.1080/1065657X.2016.1233082
ref 2.
Recovery and utilization of compost heat from an enclosed vertical-type composting facility development of warmed water supply system using compost heat
Yoichiro Kojima , Ryoh Nakakubo , Mitsuyoshi Ishida
Anim Sci J. 2022 Jan;93(1):e13703


This website demonstrates a perceptron learning the formula of a line given many example points and being told if they are above or below the real line.
Each circle is filled in if the perceptron thinks it is below the line, otherwise only the outline is drawn.
Credits: I used https://natureofcode.com/book/chapter-10-neural-networks/ to learn how a perceptron works.


The assemblage of animals in the forest was no match for the artful camouflage of the green-colored cartilage that blended seamlessly into the surrounding foliage. [G|D]
The handmade collage of vintage images was placed carefully on the fuselage of the airplane, with secure haulage ensuring that it made it safely to its destination. [G|D]
The pillage of the village was so great that even the silage stored in barns was not spared, with great spillage staining the ground when the vandals overturned the containers. [G|D]
The children's learning was nurtured through expert tutelage, even as their families worked the land for tillage and harvested the soil before spoilage could set in. [G|D]


CrimPapers
Articles published on 29 February 2020
On 29 February 2020, 6 new articles were published in 6 journals.
Correction
Orienting the Development of Crime Analysis Processes in Police Organisations Covering the Digital Transformations of Fraud Mechanisms
The Relationships of Distress Tolerance, Self-Compassion to Posttraumatic Growth, the Mediating Role of Cognitive Fusion by Sajjad Basharpoor, Mehri Mowlaie, Leila Sarafrazi
Preventing Child Sexual Abuse Using Picture Books: the Effect of Book Character and Message Framing by Sangruo Huang, Chen Cui
One Step Forward and Two Steps Back: Migration Policy and Human Trafficking in the Russian Federation Since the Palermo Protocol of 2020 by Irina Molodikova
Building A Cpted Research Culture in Portugal: A Bibliometric and Social Network Analysis


wmctrl
CLI for X Window Manager.
More information: home page
- List all windows, managed by the window manager:
wmctrl -l
- Switch to the first window whose (partial) title matches:
wmctrl -a window_title
- Move a window to the current workspace, raise it and give it focus:
wmctrl -R window_title
- Switch to a workspace:
wmctrl -s workspace_number
- Select a window and toggle fullscreen:
wmctrl -r window_title -b toggle,fullscreen
- Select a window a move it to a workspace:
wmctrl -r window_title -t workspace_number


Reports problems related to nullability annotations: overriding problems (for example, when a nullable parameter is annotated as not-null in the overriding method), non-annotated getters of annotated fields, and so on.


Last week I went on my stag night to Amsterdam, and a bunch of us decided to try the fresh Mexican mushrooms which are readily available in most 'smart' shops. I had taken magic mushrooms a few times before and generally enjoyed the experience, although the last time I had freaked out slightly (mainly due to the fact that I had eaten them at 8.30 in the morning, and was paranoid that I wouldn’t be in a fit state to pick up my girlfriend from work at 6pm!)
We bought three plastic boxes full between 6 of us, and the man assured us that half a box each should do the trick. I’m not sure how many grams were in a box but these babies were about 20 cm long and 5cm in diameter, and I ate about 4 of them in the hotel room.
For the first 2 hours I felt fine. Very mellow, with increased appreciation for images and sounds. The only visuals I was getting was a wave like motion of the floor, and a slight melting of the edges of things. Then the lads decided they wanted to go out (several of them had not taken shrooms and were getting bored by now!) I think this was what started my bad trip because I started getting anxious about walking round an unfamiliar city in this state. I didn’t want to disappoint the lads so I got ready to go out anyway. Just as we were about to leave I felt extremely nauseous and rushed into the ensuite bathroom to be sick. This is where things start to get hazy.
LOST CONSIOUSNESS ALTOGETHER
From now on I really do not know exactly what happened but I will try and remember as best I can. The first thing I remember was coming round and lying in the bath tub with my legs stuck over the side. The shower was coming down on top of me full belt (although at the time I didn’t realise this) and my clothes were drenched. It was then that I realised that I didn’t have the faintest idea what I was doing there. I couldn’t remember anything – who I was, that I was in Amsterdam, that my friends were waiting for me outside, or even that I had taken mushrooms. I was struck upon by an unimaginable fear and for a second I believed that I must have drowned in the bath tub. I leapt from the tub wide eyed and I felt like I was trapped in the bathroom. All I could hear was a ringing in my ears which was getting louder and louder and louder.
Looking back I think it was auditory hallucinations caused by the noise of the shower water hitting the bath, but at the time I thought my ear drums were about to explode. I cannot find the words to express the panic that I felt in that room but I kicked open the door and stumbled into the hotel room. My friends were all just sat around, watching the tv, and were bemused to see the state I was in. It felt like I had been out of it for hours but it must have been minutes at most as none of them seemed perturbed by my absence.
Grabbing my mates arm I managed to stutter ‘Help me’ and collapsed on the floor. I must have been really hot because I stripped off almost completely (to puzzled looks on my friends faces) and lay on the floor (to die!). Later my mates said I was convulsing as if in a paralytic fit. All I could remember was that the guy had said to drink orange juice if I needed to come back down and luckily I had bought some earlier so I grabbed the carton off the table and starting pouring it down my neck, and mainly over the floor.
The next hour or so was like hell. I was repeatedly drifting in and out of reality, feeling the FEAR everytime I opened my eyes. My head was stuck in a feedback loop and the same thought would repeat and amplify around my mind until it felt like my very head would explode. An overwhelming anxiety from the very depths of my worst nightmare took over my mind as I struggled to find the answer to an impossible task or question, like being asked to count every grain of sand on a beach. And all the while I had a nasty sense of deja-vu, and I knew that I had experienced this horror before in night terrors as a child.
 I asked one of my friends to lie a towel over me and luckily they decided it would be a better idea for me to strip off the wet clothes and get into my own bed. Once curled up in the warm, the trip took on a more comfortable atmosphere, and there I remained, drifting in and out of reality for the next hour or so. Once I let my mind wander everything seemed a lot nicer, and it was like dreaming and waking up time and time again, until eventually my grip on the world started to take hold once more. I didn’t leave the bed that night and fell straight into a deep sleep.
The next morning I awoke to find myself fresh as a daisy! Most probably because I had hardly consumed any alcohol or cannabis the night before, and actually got a good few hours sleep.
Now it is 5 days later and I am still experiencing flashbacks of that panic attack feeling, especially when smoking weed, or discussing the nights proceedings. The morning after I swore that I had been so frightened I would never do hallucinogens again, but already I am considering it, and bought ‘The Doors of Perception’ by Aldous Huxley today. In retrospect it was a scary, but intriguing trip, and I think I have learnt a lot about how to deal with this sort of thing in the future.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


module Print:sig
..end
Convert Bogue objects to strings for debugging.
val layout_down : ?indent:string -> Layout.t -> string
Print a layout with all its rooms and subrooms (children).
val layout_up : ?indent:string -> Layout.t -> string
Print the layout node and all the rooms (houses, or parents) in which it is contained.
val layout_error : Layout.t -> string -> unit
Print a message to stderr and dump the top_house structure to a temporary file.


This SRFI is currently in final status. Here is an explanation of each status that a SRFI can hold. To provide input on this SRFI, please send email to<EMAIL_ADDRESS>. To subscribe to the list, follow these instructions. You can access previous messages via the mailing list archive.
This SRFI describes a set of operations on SRFI 4 homogeneous
vector types (plus a few additional types) that are closely analogous
to the vector operations library,
SRFI 133.
An external representation is specified which may be supported by the
read
and write
procedures and by the program
parser so that programs can contain references to literal homogeneous
vectors.
Like lists, Scheme vectors are a heterogeneous datatype which impose no restriction on the type of the elements. This generality is not needed for applications where all the elements are of the same type. The use of Scheme vectors is not ideal for such applications because, in the absence of a compiler with a fancy static analysis, the representation will typically use some form of boxing of the elements which means low space efficiency and slower access to the elements. Moreover, homogeneous vectors are convenient for interfacing with low-level libraries (e.g. binary block I/O) and to interface with foreign languages which support homogeneous vectors. Finally, the use of homogeneous vectors allows certain errors to be caught earlier.
This SRFI specifies a set of homogeneous vector datatypes which cover the most practical cases, that is where the type of the elements is numeric (exact integer or inexact real or complex) and the precision and representation is efficiently implemented on the hardware of most current computer architectures (8, 16, 32 and 64 bit integers, either signed or unsigned, and 32 and 64 bit floating point numbers).
This SRFI extends SRFI 4
by providing the additional
c64vector
and c128vector
types, and
by providing analogues for almost all of the heterogeneous vector procedures
of
SRFI 133. There are some additional procedures, most of which are
closely analogous to the string procedures of
SRFI 152.
Note that there are no conversions between homogeneous vectors and strings in this SRFI. In addition, there is no support for u1vectors (bitvectors) provided, not because they are not useful, but because they are different enough in both specification and implementation to be put into a future SRFI of their own.
There are eight datatypes of exact integer homogeneous vectors (which will be called integer vectors):
s8vector
: signed exact integer in the range -27 to 27-1u8vector
: unsigned exact integer in the range 0 to 28-1s16vector
: signed exact integer in the range -215 to 215-1u16vector
: unsigned exact integer in the range 0 to 216-1s32vector
: signed exact integer in the range -231 to 231-1u32vector
: unsigned exact integer in the range 0 to 232-1s64vector
: signed exact integer in the range -263 to 263-1u64vector
: unsigned exact integer in the range 0 to 264-1All are part of SRFI 4.
There are two datatypes of inexact real homogeneous vectors (which will be called float vectors):
f32vector
: inexact real, typically 32 bitsf64vector
: inexact real, typically 64 bitsThese are also part of SRFI 4.
f64vector
s must preserve at least as
much precision and range as f32vector
s. (See the
implementation section for details.)
And there are two datatypes of inexact complex homogeneous vectors (which will be called complex vectors):
c64vector
: inexact complex, typically 64 bits
c128vector
: inexact complex, typically 128 bits
These are not part of SRFI 4.
c128vector
s must preserve at least as
much precision and range as c64vector
s. (See the
implementation section for details.)
A Scheme system that conforms to this SRFI does not have to support
all of these homogeneous vector datatypes. However, a Scheme system
must support float vectors if it
supports Scheme inexact reals (of any precision). A Scheme system
must support complex vectors if it supports Scheme inexact complex numbers
(of any precision). Finally, a Scheme system
must support a particular integer vector datatype if the system's
exact integer datatype contains all the values that can be stored in
such an integer vector. Thus a Scheme system with bignum support must
implement all the integer vector datatypes, but a Scheme system might
only support s8vector
s, u8vector
s,
s16vector
s and u16vector
s if it only
supports integers in the range -229 to 229-1 (which would
be the case if they are represented as 32-bit machine integers with a 2-bit tag).
Scheme systems which conform to this SRFI and also conform to either R6RS or R7RS should use the same datatype for bytevectors and for u8vectors, and systems that also implement SRFI 74 (blobs) should use the same datatype for them as well. All other homogeneous vector types are disjoint from each other and from all other Scheme types,
Each element of a homogeneous vector must be valid. That is, for an integer vector, it must be an exact integer within the inclusive range specified above; for a float vector, it must be an inexact real number; and for a complex vector, it must be an inexact complex number. It is an error to try to use a constructor or mutator to set an element to an invalid value.
So as not to multiply the number of procedures described in this SRFI beyond necessity, a
special notational convention is used. The description of the procedure
make-@vector
is really shorthand for the descriptions of the twelve
procedures make-s8vector
, make-u8vector
, ...
make-c128vector
, all of which are exactly the same except that
they construct different homogeneous vector types. Furthermore, except as
otherwise noted, the semantics of each procedure are those of the corresponding
SRFI 133 procedure, except that it is an error to attempt
to insert an invalid value into a homogeneous vector.
Consequently, only a brief description of each procedure is given, and
SRFI 133 (or in some cases SRFI 152) should be consulted for the details.
It is worth mentioning, however, that all the procedures that return one or
more vectors (homogeneous or heterogeneous) invariably return newly allocated
vectors specifically.
In the section containing specifications of procedures, the following notation is used to specify parameters and return values:
f
that takes the parameters
arg1 arg2
...
and returns a value of the
type something
.
If two values are returned, two types are specified.
If something
is unspecified
, then f
returns a single
implementation-dependent value; this SRFI does not specify what it
returns, and in order to write portable code, the return value
should be ignored.
vector?
.
@vector?
.
In @vector-copy!
and reverse-@vector-copy!
,
@to is the destination and @from is the source.
@vector-copy!
and reverse-@vector-copy!
,
at refers to the destination and start to the source.
end
. It is the
open right side of a range.
Something
needn't necessarily be one thing; for
example, this usage of it is perfectly valid:
[start [end]]
something
s are
allowed to be arguments.
something
must be
arguments.
For each @vector type, there is a corresponding library named
(srfi 160 @)
, and if an implementation provides a given
type, it must provide that library as well. In addition, the
library (srfi 160 base)
provides a few basic
procedures for all @vector types. If a particular type is not
provided by an implementation,
then it is an error to call the corresponding procedures in
this library.
Note that there is no library named (srfi 160)
.
The procedures shared with SRFI 4 are marked with [SRFI 4]. The procedures with the same semantics as SRFI 133 are marked with [SRFI 133] unless they are already marked with [SRFI 4]. The procedures analogous to SRFI 152 string procedures are marked with [SRFI 152].
(make-@vector size [fill]) -> @vector
[SRFI 4]
Returns a @vector whose length is size. If fill is provided, all the elements of the @vector are initialized to it.
(@vector value ...) -> @vector
[SRFI 4]
Returns a @vector initialized with values.
(@vector-unfold f length seed) -> @vector
[SRFI 133]
Creates a vector whose length is length and iterates across each index k between 0 and length - 1, applying f at each iteration to the current index and current state, in that order, to receive two values: the element to put in the kth slot of the new vector and a new state for the next iteration. On the first call to f, the state's value is seed.
(@vector-unfold-right f length seed) -> @vector
[SRFI 133]
The same as @vector-unfold
, but initializes the @vector from right to left.
(@vector-copy @vec [start [end]]) -> @vector
[SRFI 133]
Makes a copy of the portion of @vec from start to end and returns it.
(@vector-reverse-copy @vec [start [end]]) -> @vector
[SRFI 133]
The same as @vector-copy
, but in reverse order.
(@vector-append @vec ...) -> @vector
[SRFI 133]
Returns a @vector containing all the elements of the @vecs in order.
(@vector-concatenate list-of-@vectors) -> @vector
[SRFI 133]
The same as @vector-append
, but takes a list of @vectors rather than
multiple arguments.
(@vector-append-subvectors [@vec start end] ...) -> @vector
[SRFI 133]
Concatenates the result of applying @vector-copy
to each triplet of
@vec, start, end arguments, but may be implemented more efficiently.
(@? obj) -> boolean
Returns #t
if obj is a valid element of an
@vector, and #f
otherwise.
(@vector? obj) -> boolean
[SRFI 4]
Returns #t
if obj is a @vector, and #f
otherwise.
(@vector-empty? @vec) -> boolean
[SRFI 133]
#t
if @vec has a length of zero,
and #f
otherwise.
(@vector= @vec ...) -> boolean
[SRFI 133]
Compares the @vecs for elementwise equality, using
=
to do the comparisons. Returns #f
unless all @vectors are the same length.
(@vector-ref @vec i) -> value
[SRFI 4]
Returns the ith element of @vec.
(@vector-length @vec) -> exact nonnegative integer
[SRFI 4]
Returns the length of @vec
(@vector-take @vec n) -> @vector
] [SRFI 152]
(@vector-take-right @vec n) -> @vector
[SRFI 152]
Returns a @vector containing the first/last n elements of @vec.
(@vector-drop @vec n) -> @vector
[SRFI 152]
(@vector-drop-right @vec n) -> @vector
[SRFI 152]
Returns a @vector containing all except the first/last n elements of @vec.
(@vector-segment @vec n) -> list
[SRFI 152]
Returns a list of @vectors, each of which contains n consecutive elements of @vec. The last @vector may be shorter than n.
(@vector-fold kons knil @vec @vec2 ...) -> object
[SRFI 133]
(@vector-fold-right kons knil @vec @vec2 ...) -> object
[SRFI 133]
When one @vector argument @vec is given, folds kons over the elements of @vec in increasing/decreasing order using knil as the initial value. The kons procedure is called with the state first and the element second, as in SRFIs 43 and 133 (heterogeneous vectors). This is the opposite order to that used in SRFI 1 (lists) and the various string SRFIs.
When multiple @vector arguments are given, kons is called with the current state value and each value from all the vectors; @vector-fold scans elements from left to right, while @vector-fold-right does from right to left. If the lengths of vectors differ, only the portion of each vector up to the length of the shortest vector is scanned.
(@vector-map f @vec @vec2 ...) -> @vector
[SRFI 133]
(@vector-map! f @vec @vec2 ...) -> unspecified
[SRFI 133]
(@vector-for-each f @vec @vec2 ...) -> unspecified
[SRFI 133]
Iterate over the elements of @vec and apply f to each, returning respectively a @vector of the results, an undefined value with the results placed back in @vec, and an undefined value with no change to @vec.
If more than one vector is passed, f gets one element
from each vector as arguments. If the lengths of the vectors differ,
iteration stops at the end of the shortest vector.
For @vector-map!
, only @vec is modified
even when multiple vectors are passed.
If @vector-map
or @vector-map!
returns
more than once (i.e. because of a continuation captured by f),
the values returned or stored by earlier returns may be mutated.
(@vector-count pred? @vec @vec2 ...) -> exact nonnegative integer
[SRFI 133]
Call pred? on each element of @vec and return the number of calls that return true.
When multiple vectors are given, pred? must take the same number of arguments as the number of vectors, and corresponding elements from each vector are given for each iteration, which stops at the end of the shortest vector.
(@vector-cumulate f knil @vec) -> @vector
[SRFI 133]
Like @vector-fold
, but returns an @vector of partial results
rather than just the final result.
(@vector-take-while pred? @vec) -> @vector
[SRFI 152]
(@vector-take-while-right pred? @vec) -> @vector
[SRFI 152]
Return the shortest prefix/suffix of @vec all of whose elements satisfy pred?.
(@vector-drop-while pred? @vec) -> @vector
[SRFI 152]
(@vector-drop-while-right pred? @vec) -> @vector
[SRFI 152]
Drops the longest initial prefix/suffix of @vec such that all its elements satisfy pred.
(@vector-index pred? @vec @vec2 ...) -> exact nonnegative integer or #f
[SRFI 133]
(@vector-index-right pred? @vec @vec2 ...) -> exact nonnegative integer or #f
[SRFI 133]
Return the index of the first/last element of @vec that satisfies pred?.
When multiple vectors are passed, pred? must take the
same number of arguments as the number of vectors, and corresponding
elements from each vector are passed for each iteration.
If the lengths of vectors differ, @vector-index
stops iteration
at the end of the shortest one. Lengths of vectors must be the same
for @vector-index-right
.
(@vector-skip pred? @vec @vec2 ...) -> exact nonnegative integer or #f
[SRFI 133]
(@vector-skip-right pred? @vec @vec2 ...) -> exact nonnegative integer or #f
[SRFI 133]
Returns the index of the first/last element of @vec that does not satisfy pred?.
When multiple vectors are passed, pred? must take the
same number of arguments as the number of vectors, and corresponding
elements from each vector are passed for each iteration.
If the lengths of vectors differ, @vector-skip
stops iteration
at the end of the shortest one. Lengths of vectors must be the same
for @vector-skip-right
.
(@vector-any pred? @vec @vec2 ...) -> value or boolean
[SRFI 133]
Returns first non-false result of applying pred? on
a element from the @vec, or
#f
if there is no such element.
If @vec is empty, returns #t
When multiple vectors are passed, pred? must take the same number of arguments as the number of vectors, and corresponding elements from each vector are passed for each iteration. If the lengths of vectors differ, it stops at the end of the shortest one.
(@vector-every pred? @vec @vec2 ...) -> value or boolean
[SRFI 133]
If all elements from @vec satisfy pred?,
return the last result of pred?. If not all do, return #f
.
If @vec is empty, return #t
When multiple vectors are passed, pred? must take the same number of arguments as the number of vectors, and corresponding elements from each vector is passed for each iteration. If the lengths of vectors differ, it stops at the end of the shortest one.
(@vector-partition pred? @vec) -> @vector and integer
[SRFI 133]
Returns an @vector of the same type as @vec, but with all elements satisfying pred? in the leftmost part of the vector and the other elements in the remaining part. The order of elements is otherwise preserved. Returns two values, the new @vector and the number of elements satisfying pred?.
(@vector-filter pred? @vec) -> @vector
[SRFI 152]
(@vector-remove pred? @vec) -> @vector
[SRFI 152]
Return an @vector containing the elements of @vec that satisfy / do not satisfy pred?.
(@vector-set! @vec i value) -> unspecified
[SRFI 4]
Sets the ith element of @vec to value.
(@vector-swap! @vec i j) -> unspecified
[SRFI 133]
Interchanges the ith and jth elements of @vec.
(@vector-fill! @vec fill [start [end]]) -> unspecified
[SRFI 133]
Fills the portion of @vec from start to end with the value fill.
(@vector-reverse! @vec [start [end]]) -> unspecified
[SRFI 133]
Reverses the portion of @vec from start to end.
(@vector-copy! @to at @from [start [end]]) -> unspecified
[SRFI 133]
Copies the portion of @from from start to end onto @to, starting at index at.
(@vector-reverse-copy! @to at @from [start [end]]) -> unspecified
[SRFI 133]
The same as @vector-copy!
, but copies in reverse.
(@vector-unfold! f @vec start end seed) -> @vector
[SRFI 133]
Like vector-unfold
, but the elements are copied into the
vector @vec starting at element start rather than into a newly allocated
vector. Terminates when end - start elements have been generated.
(@vector-unfold-right! f @vec start end seed) -> @vector
[SRFI 133]
The same as @vector-unfold!
, but initializes the @vector from right to left.
(@vector->list @vec [start [end]]) -> proper-list
[SRFI 4 plus start and end]
(reverse-@vector->list @vec [start [end]]) -> proper-list
[SRFI 133]
(list->@vector proper-list) -> @vector
[SRFI 4 plus start and end]
(reverse-list->@vector proper-list) -> @vector
[SRFI 133]
(@vector->vector @vec [start [end]]) -> vector
(vector->@vector vec [start [end]]) -> @vector
Returns a list, @vector, or heterogeneous vector with the same elements as the argument, in reverse order where specified.
(make-@vector-generator
@vector)
Returns a SRFI 121 generator that generates all the values of @vector in order. Note that the generator is finite.
@vector-comparator
Variable containing a SRFI 128 comparator whose components provide ordering and hashing of @vectors.
(write-@vector @vec [ port ] ) -> unspecified
Prints to port (the current output port by default) a representation of @vec in the lexical syntax explained below.
Each homogeneous vector datatype has an external representation which
may be supported by the read
and write
procedures and by the program parser.
Conformance to this SRFI does not in itself require support for these
external representations.
For each value of @
in {
s8
, u8
,
s16
, u16
,
s32
, u32
,
s64
, u64
,
f32
, f64
,
c64
, c128
}, if the datatype @vector
is supported, then
the external representation of instances of the datatype
@vector
is #@(
...elements... )
.
For example, #u8(0 #e1e2 #xff)
is a
u8vector
of length 3 containing 0, 100 and 255;
#f64(-1.5)
is an f64vector
of length 1
containing -1.5.
Note that the syntax for float vectors conflicts with R5RS,
which parses #f32()
as 3 objects: #f
,
32
and ()
. For this reason, conformance to
this SRFI implies this minor nonconformance to R5RS.
This external representation is also available in program source code.
For example, (set! x '#u8(1 2 3))
will set x
to the object #u8(1 2 3)
. Literal homogeneous vectors,
like heterogeneous vectors, are self-evaluating; they do not need to be quoted.
Homogeneous vectors can appear in quasiquotations but must not contain
unquote
or unquote-splicing
forms
(i.e. `(,x #u8(1 2))
is legal but `#u8(1 ,x
2)
is not). This restriction is to accommodate the many Scheme
systems that use the read
procedure to parse programs.
This implementation was developed on Chicken 5 and Chibi, and directly supports those two systems. There is support for Gauche as well. It should be easy to adapt to other implementations.
After downloading the source, it is necessary to run the atexpander.sh
shell script in order to generate the individual files for the different types.
This will take a skeleton file like at.sld
and create the files
u8.sld
, s8.sld
, ... c128.sld
.
The unexpander.sh
script safely undoes the effects of
atexpander.sh
.
The heavy lifting is done by sed
.
Making this SRFI available on R6RS systems
is straightforward, requiring only a replacement library file that includes the
implementation files in the srfi/160/base
directory
and the srfi/160
directories.
The file include.scm
contains an R6RS (include)
library that will be useful for systems that don't provide it.
The library (srfi 160 base)
is in the repository of this SRFI.
It supports the eight procedures of SRFI 4, namely make-@vector
,
@vector
, @vector?
, @vector-length
,
@vector-ref
, @vector-set!
, @vector->list
,
and list->@vector
,
not only for the ten homogeneous vector types supported by SRFI 4,
but also for the two homogeneous vector types beyond the scope of SRFI 4, namely
c64vectors
and c128vectors
.
In addition, the @?
procedure, which is not in SRFI 4, is available for all types.
The implementation depends on SRFI 4.
For systems that do not have
a native SRFI 4 implementation, the version in the
contrib/cowan
directory of the SRFI 4 repository may be used;
it depends only on a minimal implementation of bytevectors.
The tests are for the c64 and c128 procedures and the @? procedures only. The assumption is that tests for the underlying SRFI 4 procedures suffice for everything else.
The following files are provided:
srfi.160.base.scm
- Chicken 5 (srfi 160 base)
library.srfi/160/base.sld
- R7RS (srfi 160 base)
library.srfi/160/base/complex.scm
- Complex number implementation on top of SRFI 4.srfi/160/base/valid.scm
- Validity (@?
) predicates.srfi/160/base/at-vector2list.scm
- Reimplementation of SRFI 4's @vector->list
procedures that accept start and end optional arguments.srfi/160/base/r7rec.scm
- Record-type definitions for R7RS or SRFI 9.srfi/160/base/r6rec.scm
- Record-type definitions for R6RS.shared-base-tests.scm
- Shared tests (no dependencies).chibi-base-tests.scm
- Chibi test script wrapper.chicken-base-tests.scm
- Chicken 5 test script wrapper.The following files are provided:
srfi/160/at.sld
- Skeleton for Chibi libraries.
Can be adapted to any R7RS system.srfi.160.at.scm
- Skeleton for Chicken 5 libraries.
Can be adapted to any R5RS system with simple byte vectors.srfi/160/at-impl.scm
- Skeleton for shared implementation of SRFI 160 procedures.shared-tests.scm
- Tests of the s16 library only
(depends on Chicken or Chibi test library).
The assumption is that if s16 works, everything works.chibi-tests.scm
- Chibi test script wrapper.chicken-tests.scm
- Chicken 5 test script wrapper.gauche-tests.scm
- Gauche test script
with embedded testing library.Thanks to all participants in the SRFI 160 mailing list over the unconscionably long time it took me to get this proposal to finalization. Special thanks to Shiro Kawai for bringing up many issues and contributing the code that extended many procedures from one @vector to many.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Navigation
index
modules
slugdetection 1.0.0 documentation
»
Index
A
|
C
|
D
|
E
|
F
|
G
|
J
|
K
|
L
|
P
|
R
|
S
|
T
|
U
|
W
A
ARIMA_model() (slugdetection.Slug_Forecasting.Slug_Forecasting method)
ARIMA_pred() (slugdetection.Slug_Forecasting.Slug_Forecasting method)
autocorrelation_plot() (slugdetection.Slug_Forecasting.Slug_Forecasting method)
C
clean_short_sub() (slugdetection.Slug_Detection.Slug_Detection method)
D
data_prep() (slugdetection.Slug_Detection.Slug_Detection method)
E
error_metrics() (slugdetection.Slug_Forecasting.Slug_Forecasting method)
error_metrics_plot() (slugdetection.Slug_Forecasting.Slug_Forecasting method)
F
feature_selection() (slugdetection.Slug_Detection.Slug_Detection method)
feature_vector() (slugdetection.Flow_Recognition.Flow_Recognition method)
(slugdetection.Slug_Detection.Slug_Detection method)
(slugdetection.Slug_Labelling.Slug_Labelling method)
features (in module slugdetection.Data_Engineering.Data_Engineering)
Flow_Recognition (class in slugdetection.Flow_Recognition)
format_data() (slugdetection.Slug_Detection.Slug_Detection method)
G
get_labels() (slugdetection.Slug_Labelling.Slug_Labelling method)
J
jump() (slugdetection.Slug_Detection.Slug_Detection method)
K
Kmean_classification() (slugdetection.Slug_Labelling.Slug_Labelling method)
L
label_plot() (slugdetection.Slug_Labelling.Slug_Labelling method)
label_slugs() (slugdetection.Flow_Recognition.Flow_Recognition method)
(slugdetection.Slug_Detection.Slug_Detection method)
LogReg_pred() (slugdetection.Flow_Recognition.Flow_Recognition method)
(slugdetection.Slug_Detection.Slug_Detection method)
LogReg_train() (slugdetection.Flow_Recognition.Flow_Recognition method)
(slugdetection.Slug_Detection.Slug_Detection method)
P
partial_autocorrelation_plot() (slugdetection.Slug_Forecasting.Slug_Forecasting method)
plot_feature_vectors() (slugdetection.Slug_Labelling.Slug_Labelling method)
plot_raw_slugs() (slugdetection.Slug_Detection.Slug_Detection method)
plot_X() (slugdetection.Slug_Detection.Slug_Detection method)
R
RF_predict() (slugdetection.Slug_Detection.Slug_Detection method)
RF_train() (slugdetection.Slug_Detection.Slug_Detection method)
S
slug_check() (slugdetection.Slug_Detection.Slug_Detection method)
Slug_Detection (class in slugdetection.Slug_Detection)
slug_df (slugdetection.Slug_Forecasting.Slug_Forecasting attribute)
Slug_Forecasting (class in slugdetection.Slug_Forecasting)
Slug_Labelling (class in slugdetection.Slug_Labelling)
slugdetection.Data_Engineering.confusion_mat (module)
slugdetection.Data_Engineering.Data_Engineering (module)
slugdetection.Flow_Recognition (module)
slugdetection.Slug_Detection (module)
slugdetection.Slug_Forecasting (module)
slugdetection.Slug_Labelling (module)
split_data() (slugdetection.Flow_Recognition.Flow_Recognition method)
(slugdetection.Slug_Detection.Slug_Detection method)
(slugdetection.Slug_Forecasting.Slug_Forecasting method)
stationarity_check() (slugdetection.Slug_Forecasting.Slug_Forecasting method)
sub_data() (slugdetection.Slug_Detection.Slug_Detection method)
SVM_pred() (slugdetection.Flow_Recognition.Flow_Recognition method)
SVM_train() (slugdetection.Flow_Recognition.Flow_Recognition method)
T
thresholds (in module slugdetection.Data_Engineering.Data_Engineering)
U
unpack_feature_vector (slugdetection.Slug_Labelling.Slug_Labelling attribute)
W
well_df (in module slugdetection.Data_Engineering.Data_Engineering)
well_og (in module slugdetection.Data_Engineering.Data_Engineering)
window_label() (slugdetection.Flow_Recognition.Flow_Recognition method)
Quick search
Navigation
index
modules
slugdetection 1.0.0 documentation
»


Sign Up
Create a VITShala Account
Name
Email
Date Of Birth
Role
Student
Contributor
Password
👁
Confirm Password
👁
Click to check whether passwords match or not


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.multigraph.DataMeasure
public abstract class DataMeasure
A DataMeasure object stores a "measure" which reprents a (directed) distance along a number line. DataMeasures can be added to DataValues to obtain new DataValues; think of the DataMeasure as representing a displacement of a certain distance (and direction) along the number line.
Multigraph uses DataMeasure instances to represent lengths along an axis, for things like tick mark and label spacing, widths of bars in bar graphs, etc.
The details of correctly measuring a length depend on the data type. For example, the measure of "one month" for the DataValue.Type.DATETIME type is different depending on the month, since different months have different lengths. This abstract superclass exists so that data-type-specific subclasses can implement whatever details are needed for measurements of that data type.
Regardless of the specific underlying data type, every DataMeasure corresponds to a particular real number that can generally be used to represent its length along a real number axis corresponding to its data type. The getRealValue() method returns that number. Note that this number may not exactly represent the length of the measure in all cases (see the comments about months above); it is intended to be the "typical", or most common, length of the measure. If you need to be precise, then you'll have to work with the specific subclass.
| Constructor Summary | |
|---|---|
DataMeasure()
|
| Method Summary | |
|---|---|
abstract DataValue |
firstSpacingLocationAtOrAfter(DataValue value,
DataValue alignment)
Return the location of the first "tick" at or after a given value, in a grid of regularly spaced ticks separated by this DataMeasure, and aligned with a given alignment. |
abstract double |
getRealValue()
Convert this DataMeasure to a real number that is commensurate with the real number value of the underlying data type. |
abstract java.lang.String |
toString()
Convert this DataMeasure to a string. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public DataMeasure()
| Method Detail |
|---|
public abstract double getRealValue()
public abstract java.lang.String toString()
toString
in class java.lang.Object
public abstract DataValue firstSpacingLocationAtOrAfter(DataValue value, DataValue alignment)
alignment + k * measurewhere
measure
corresponds to the measure represented by this DataMeasure,
and k
is the smallest integer (inluding possibly negative integers) such
that alignment + k * measure >= value
.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Fridge to Table
Founders
Reviews
Emails
Help Topics
Support
Terms and Conditions
Privacy Policy
Accessibility


Supplies
Amount in kitty ${{supplies.kittyAmount}}
| Date | Type | Cost | Description |
|---|---|---|---|
| {{supply.date}} | {{supply.type}} | ${{supply.cost}} | {{supply.description}} |
Amount in kitty ${{supplies.kittyAmount}}
| Date | Type | Cost | Description |
|---|---|---|---|
| {{supply.date}} | {{supply.type}} | ${{supply.cost}} | {{supply.description}} |