mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-31 10:26:52 +08:00
commander: reboot/shutdown usability fixes
- always check with state machine before reboot/shutdown - respect BOARD_HAS_POWER_CONTROL (shutdown from command, low battery, power button) - px4_shutdown_request add optional delay and always execute from HPWORK - px4_shutdown_request split out px4_reboot_request
This commit is contained in:
@@ -74,7 +74,6 @@ px4_add_board(
|
|||||||
param
|
param
|
||||||
perf
|
perf
|
||||||
pwm
|
pwm
|
||||||
reboot
|
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
shutdown
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
|
|||||||
@@ -44,9 +44,6 @@
|
|||||||
|
|
||||||
#define BOARD_BATTERY1_V_DIV (10.177939394f)
|
#define BOARD_BATTERY1_V_DIV (10.177939394f)
|
||||||
|
|
||||||
#define BOARD_HAS_NO_RESET
|
|
||||||
#define BOARD_HAS_NO_BOOTLOADER
|
|
||||||
|
|
||||||
#define BOARD_MAX_LEDS 1 // Number of external LED's this board has
|
#define BOARD_MAX_LEDS 1 // Number of external LED's this board has
|
||||||
|
|
||||||
#define PX4_NUMBER_I2C_BUSES 4
|
#define PX4_NUMBER_I2C_BUSES 4
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -93,9 +93,6 @@ extern void led_on(int led);
|
|||||||
extern void led_off(int led);
|
extern void led_off(int led);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Protected Functions
|
|
||||||
****************************************************************************/
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
* Name: board_on_reset
|
* Name: board_on_reset
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -101,7 +101,6 @@ px4_add_board(
|
|||||||
param
|
param
|
||||||
perf
|
perf
|
||||||
pwm
|
pwm
|
||||||
reboot
|
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
shutdown
|
||||||
#tests # tests and test runner
|
#tests # tests and test runner
|
||||||
|
|||||||
@@ -42,9 +42,6 @@
|
|||||||
#define BOARD_OVERRIDE_UUID "EAGLEID000000000" // must be of length 16
|
#define BOARD_OVERRIDE_UUID "EAGLEID000000000" // must be of length 16
|
||||||
#define PX4_SOC_ARCH_ID PX4_SOC_ARCH_ID_EAGLE
|
#define PX4_SOC_ARCH_ID PX4_SOC_ARCH_ID_EAGLE
|
||||||
|
|
||||||
#define BOARD_HAS_NO_RESET
|
|
||||||
#define BOARD_HAS_NO_BOOTLOADER
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I2C busses
|
* I2C busses
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -100,7 +100,6 @@ px4_add_board(
|
|||||||
param
|
param
|
||||||
perf
|
perf
|
||||||
pwm
|
pwm
|
||||||
reboot
|
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
shutdown
|
||||||
#tests # tests and test runner
|
#tests # tests and test runner
|
||||||
|
|||||||
@@ -42,9 +42,6 @@
|
|||||||
#define BOARD_OVERRIDE_UUID "EAGLEID000000000" // must be of length 16
|
#define BOARD_OVERRIDE_UUID "EAGLEID000000000" // must be of length 16
|
||||||
#define PX4_SOC_ARCH_ID PX4_SOC_ARCH_ID_EAGLE
|
#define PX4_SOC_ARCH_ID PX4_SOC_ARCH_ID_EAGLE
|
||||||
|
|
||||||
#define BOARD_HAS_NO_RESET
|
|
||||||
#define BOARD_HAS_NO_BOOTLOADER
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I2C busses
|
* I2C busses
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ px4_add_board(
|
|||||||
param
|
param
|
||||||
perf
|
perf
|
||||||
pwm
|
pwm
|
||||||
reboot
|
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
shutdown
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
|
|||||||
@@ -44,8 +44,6 @@
|
|||||||
|
|
||||||
#define BOARD_BATTERY1_V_DIV (11.0f)
|
#define BOARD_BATTERY1_V_DIV (11.0f)
|
||||||
|
|
||||||
#define BOARD_HAS_NO_BOOTLOADER
|
|
||||||
|
|
||||||
#define BOARD_MAX_LEDS 4 // Number external of LED's this board has
|
#define BOARD_MAX_LEDS 4 // Number external of LED's this board has
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
tune_control
|
tune_control
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -49,6 +49,8 @@
|
|||||||
|
|
||||||
extern int sercon_main(int c, char **argv);
|
extern int sercon_main(int c, char **argv);
|
||||||
|
|
||||||
|
__EXPORT void board_on_reset(int status) {}
|
||||||
|
|
||||||
__EXPORT void stm32_boardinitialize(void)
|
__EXPORT void stm32_boardinitialize(void)
|
||||||
{
|
{
|
||||||
/* configure USB interfaces */
|
/* configure USB interfaces */
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ px4_add_board(
|
|||||||
param
|
param
|
||||||
perf
|
perf
|
||||||
pwm
|
pwm
|
||||||
reboot
|
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
shutdown
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
|
|||||||
@@ -45,9 +45,6 @@
|
|||||||
#define BOARD_BATTERY1_V_DIV (10.177939394f)
|
#define BOARD_BATTERY1_V_DIV (10.177939394f)
|
||||||
#define BOARD_BATTERY1_A_PER_V (15.391030303f)
|
#define BOARD_BATTERY1_A_PER_V (15.391030303f)
|
||||||
|
|
||||||
#define BOARD_HAS_NO_RESET
|
|
||||||
#define BOARD_HAS_NO_BOOTLOADER
|
|
||||||
|
|
||||||
#define BOARD_MAX_LEDS 1 // Number of external LED's this board has
|
#define BOARD_MAX_LEDS 1 // Number of external LED's this board has
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ CONFIG_MM_REGIONS=3
|
|||||||
CONFIG_NFILE_DESCRIPTORS=5
|
CONFIG_NFILE_DESCRIPTORS=5
|
||||||
CONFIG_NFILE_STREAMS=3
|
CONFIG_NFILE_STREAMS=3
|
||||||
CONFIG_NPTHREAD_KEYS=4
|
CONFIG_NPTHREAD_KEYS=4
|
||||||
|
|
||||||
CONFIG_PREALLOC_TIMERS=50
|
CONFIG_PREALLOC_TIMERS=50
|
||||||
CONFIG_PREALLOC_WDOGS=50
|
CONFIG_PREALLOC_WDOGS=50
|
||||||
CONFIG_PTHREAD_STACK_MIN=512
|
CONFIG_PTHREAD_STACK_MIN=512
|
||||||
@@ -92,7 +91,6 @@ CONFIG_TIME_EXTENDED=y
|
|||||||
CONFIG_TTY_SIGINT=y
|
CONFIG_TTY_SIGINT=y
|
||||||
CONFIG_TTY_SIGINT_CHAR=0x03
|
CONFIG_TTY_SIGINT_CHAR=0x03
|
||||||
CONFIG_TTY_SIGSTP=y
|
CONFIG_TTY_SIGSTP=y
|
||||||
CONFIG_USART3_DMA=y
|
|
||||||
CONFIG_USART3_RXBUFSIZE=600
|
CONFIG_USART3_RXBUFSIZE=600
|
||||||
CONFIG_USART3_TXBUFSIZE=300
|
CONFIG_USART3_TXBUFSIZE=300
|
||||||
CONFIG_USBDEV=y
|
CONFIG_USBDEV=y
|
||||||
|
|||||||
@@ -34,22 +34,12 @@
|
|||||||
/**
|
/**
|
||||||
* @file bootloader_main.c
|
* @file bootloader_main.c
|
||||||
*
|
*
|
||||||
* PX4FMU-specific early startup code for bootloader
|
* FMU-specific early startup code for bootloader
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Included Files
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "board_config.h"
|
#include "board_config.h"
|
||||||
#include "bl.h"
|
#include "bl.h"
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <debug.h>
|
|
||||||
#include <errno.h>
|
|
||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
#include <nuttx/board.h>
|
#include <nuttx/board.h>
|
||||||
#include <chip.h>
|
#include <chip.h>
|
||||||
@@ -59,14 +49,11 @@
|
|||||||
|
|
||||||
extern int sercon_main(int c, char **argv);
|
extern int sercon_main(int c, char **argv);
|
||||||
|
|
||||||
/****************************************************************************
|
__EXPORT void board_on_reset(int status) {}
|
||||||
* Pre-Processor Definitions
|
|
||||||
****************************************************************************/
|
__EXPORT void stm32_boardinitialize(void)
|
||||||
__EXPORT void
|
|
||||||
stm32_boardinitialize(void)
|
|
||||||
{
|
{
|
||||||
/* configure USB interfaces */
|
/* configure USB interfaces */
|
||||||
|
|
||||||
stm32_usbinitialize();
|
stm32_usbinitialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
tune_control
|
tune_control
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
#tests # tests and test runner
|
#tests # tests and test runner
|
||||||
top
|
top
|
||||||
#topic_listener
|
#topic_listener
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
#tests # tests and test runner
|
#tests # tests and test runner
|
||||||
top
|
top
|
||||||
#topic_listener
|
#topic_listener
|
||||||
|
|||||||
@@ -97,7 +97,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -101,7 +101,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
tune_control
|
tune_control
|
||||||
|
|||||||
@@ -66,7 +66,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
#reflect
|
#reflect
|
||||||
#sd_bench
|
#sd_bench
|
||||||
shutdown
|
|
||||||
top
|
top
|
||||||
#topic_listener
|
#topic_listener
|
||||||
#tune_control
|
#tune_control
|
||||||
|
|||||||
@@ -87,7 +87,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
#tests # tests and test runner
|
#tests # tests and test runner
|
||||||
top
|
top
|
||||||
#topic_listener
|
#topic_listener
|
||||||
|
|||||||
@@ -111,7 +111,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -110,7 +110,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -105,7 +105,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -105,7 +105,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -105,7 +105,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -107,7 +107,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -109,7 +109,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -82,7 +82,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
tune_control
|
tune_control
|
||||||
|
|||||||
@@ -108,7 +108,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -93,7 +93,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
tune_control
|
tune_control
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -82,7 +82,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
tune_control
|
tune_control
|
||||||
|
|||||||
@@ -108,7 +108,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
@@ -109,7 +109,6 @@ px4_add_board(
|
|||||||
reboot
|
reboot
|
||||||
reflect
|
reflect
|
||||||
sd_bench
|
sd_bench
|
||||||
shutdown
|
|
||||||
tests # tests and test runner
|
tests # tests and test runner
|
||||||
top
|
top
|
||||||
topic_listener
|
topic_listener
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user