/* * Trace Recorder for Tracealyzer v4.6.0 * Copyright 2021 Percepio AB * www.percepio.com * * SPDX-License-Identifier: Apache-2.0 * * Supporting functions for trace streaming, used by the "stream ports" * for reading and writing data to the interface. * Existing ports can easily be modified to fit another setup, e.g., a * different TCP/IP stack, or to define your own stream port. */ #include #if ( TRC_USE_TRACEALYZER_RECORDER == 1 ) #if ( TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING ) TraceStreamPortFile_t * pxStreamPortFile; traceResult xTraceStreamPortInitialize( TraceStreamPortBuffer_t * pxBuffer ) { TRC_ASSERT_EQUAL_SIZE( TraceStreamPortBuffer_t, TraceStreamPortFile_t ); TRC_ASSERT( pxBuffer != 0 ); pxStreamPortFile = ( TraceStreamPortFile_t * ) pxBuffer; pxStreamPortFile->pxFile = 0; #if ( TRC_USE_INTERNAL_BUFFER == 1 ) return xTraceInternalEventBufferInitialize( pxStreamPortFile->buffer, sizeof( pxStreamPortFile->buffer ) ); #else return TRC_SUCCESS; #endif } traceResult xTraceStreamPortOnTraceBegin( void ) { if( pxStreamPortFile == 0 ) { return TRC_FAIL; } if( pxStreamPortFile->pxFile == 0 ) { errno_t err = fopen_s( &pxStreamPortFile->pxFile, TRC_CFG_STREAM_PORT_TRACE_FILE, "wb" ); if( err != 0 ) { printf( "Could not open trace file, error code %d.\n", err ); return TRC_FAIL; } else { printf( "Trace file created.\n" ); } } return TRC_SUCCESS; } traceResult xTraceStreamPortOnTraceEnd( void ) { if( pxStreamPortFile == 0 ) { return TRC_FAIL; } if( pxStreamPortFile->pxFile != 0 ) { fclose( pxStreamPortFile->pxFile ); pxStreamPortFile->pxFile = 0; printf( "Trace file closed.\n" ); } return TRC_SUCCESS; } #endif /*(TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)*/ #endif /*(TRC_USE_TRACEALYZER_RECORDER == 1)*/