- RPC: added CLI command to start session - all input bytes goes into RPC, all RPC output goes into VCP - RPC: added command to close session (actually it only notifies transport layer) - RPC: added recursive rmdir - RPC: hard-coded listing for root directory (any, ext, int) - Fixed CLI leak - Fixed furi_record_delete leak - Unit tests: repaired - Unit tests: corrected output - remove excess, change dots with progress spinner - Unit tests: added leak check - Unit tests: SD mount check before start Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
 * @file furi-hal-vcp.h
 | 
						|
 * VCP HAL API
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <stdbool.h>
 | 
						|
#include <stdint.h>
 | 
						|
#include <string.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
/** Init VCP HAL Allocates ring buffer and initializes state
 | 
						|
 */
 | 
						|
void furi_hal_vcp_init();
 | 
						|
 | 
						|
/** Disable VCP to make CDC interface usable by other application
 | 
						|
 */
 | 
						|
void furi_hal_vcp_disable();
 | 
						|
 | 
						|
/** Enable VCP
 | 
						|
 */
 | 
						|
void furi_hal_vcp_enable();
 | 
						|
 | 
						|
/** Recieve data from VCP Waits till some data arrives, never returns 0
 | 
						|
 *
 | 
						|
 * @param      buffer  pointer to buffer
 | 
						|
 * @param      size    buffer size
 | 
						|
 *
 | 
						|
 * @return     items copied in buffer, 0 if channel closed
 | 
						|
 */
 | 
						|
size_t furi_hal_vcp_rx(uint8_t* buffer, size_t size);
 | 
						|
 | 
						|
/** Recieve data from VCP with timeout Waits till some data arrives during
 | 
						|
 * timeout
 | 
						|
 *
 | 
						|
 * @param      buffer   pointer to buffer
 | 
						|
 * @param      size     buffer size
 | 
						|
 * @param      timeout  rx timeout in ms
 | 
						|
 *
 | 
						|
 * @return     items copied in buffer, 0 if channel closed or timeout occurs
 | 
						|
 */
 | 
						|
size_t furi_hal_vcp_rx_with_timeout(uint8_t* buffer, size_t size, uint32_t timeout);
 | 
						|
 | 
						|
/** Transmit data to VCP
 | 
						|
 *
 | 
						|
 * @param      buffer  pointer to buffer
 | 
						|
 * @param      size    buffer size
 | 
						|
 */
 | 
						|
void furi_hal_vcp_tx(const uint8_t* buffer, size_t size);
 | 
						|
 | 
						|
/** Check whether VCP is connected
 | 
						|
 *
 | 
						|
 * @return     true if connected
 | 
						|
 */
 | 
						|
bool furi_hal_vcp_is_connected(void);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |