@@ -463,7 +463,7 @@ Error Diags::ProcessSend(uint8_t aArgsLength, char *aArgs[])
463
463
VerifyOrExit (txLength >= OT_RADIO_FRAME_MIN_SIZE, error = kErrorInvalidArgs );
464
464
mTxLen = txLength;
465
465
466
- TransmitPacket ();
466
+ SuccessOrExit (error = TransmitPacket () );
467
467
468
468
if (!mIsAsyncSend )
469
469
{
@@ -507,12 +507,14 @@ void Diags::OutputStats(void)
507
507
" sent success packets: %lu\r\n "
508
508
" sent error cca packets: %lu\r\n "
509
509
" sent error abort packets: %lu\r\n "
510
+ " sent error invalid state packets: %lu\r\n "
510
511
" sent error others packets: %lu\r\n "
511
512
" first received packet: rssi=%d, lqi=%u\r\n "
512
513
" last received packet: rssi=%d, lqi=%u\r\n " ,
513
514
ToUlong (mStats .mReceivedPackets ), ToUlong (mStats .mSentSuccessPackets ), ToUlong (mStats .mSentErrorCcaPackets ),
514
- ToUlong (mStats .mSentErrorAbortPackets ), ToUlong (mStats .mSentErrorOthersPackets ), mStats .mFirstRssi ,
515
- mStats .mFirstLqi , mStats .mLastRssi , mStats .mLastLqi );
515
+ ToUlong (mStats .mSentErrorAbortPackets ), ToUlong (mStats .mSentErrorInvalidStatePackets ),
516
+ ToUlong (mStats .mSentErrorOthersPackets ), mStats .mFirstRssi , mStats .mFirstLqi , mStats .mLastRssi ,
517
+ mStats .mLastLqi );
516
518
}
517
519
518
520
Error Diags::ProcessStats (uint8_t aArgsLength, char *aArgs[])
@@ -546,8 +548,9 @@ Error Diags::ProcessStop(uint8_t aArgsLength, char *aArgs[])
546
548
return kErrorNone ;
547
549
}
548
550
549
- void Diags::TransmitPacket (void )
551
+ Error Diags::TransmitPacket (void )
550
552
{
553
+ Error error = kErrorNone ;
551
554
mTxPacket ->mChannel = mChannel ;
552
555
553
556
if (mIsTxPacketSet )
@@ -568,7 +571,14 @@ void Diags::TransmitPacket(void)
568
571
}
569
572
570
573
mDiagSendOn = true ;
571
- IgnoreError (Get<Radio>().Transmit (*static_cast <Mac::TxFrame *>(mTxPacket )));
574
+ error = Get<Radio>().Transmit (*static_cast <Mac::TxFrame *>(mTxPacket ));
575
+
576
+ if (error == kErrorInvalidState )
577
+ {
578
+ mStats .mSentErrorInvalidStatePackets ++;
579
+ }
580
+
581
+ return error;
572
582
}
573
583
574
584
Error Diags::ParseReceiveConfigFormat (const char *aFormat, ReceiveConfig &aConfig)
@@ -765,7 +775,7 @@ void Diags::AlarmFired(void)
765
775
{
766
776
uint32_t now = otPlatAlarmMilliGetNow ();
767
777
768
- TransmitPacket ();
778
+ IgnoreError ( TransmitPacket () );
769
779
otPlatAlarmMilliStartAt (&GetInstance (), now, mTxPeriod );
770
780
}
771
781
else
@@ -875,7 +885,7 @@ void Diags::TransmitDone(Error aError)
875
885
if (mTxPackets > 1 )
876
886
{
877
887
mTxPackets --;
878
- TransmitPacket ();
888
+ IgnoreError ( TransmitPacket () );
879
889
}
880
890
else
881
891
{
0 commit comments