127 lines
3.0 KiB
C
127 lines
3.0 KiB
C
////////////////////////////////////////////////////////////////////////////////
|
||
|
||
/// 终端打印文件
|
||
///
|
||
///
|
||
/// @file bsp_ser.c
|
||
/// @author gkl
|
||
/// @date 2017-05-17
|
||
/// @version v0.1
|
||
|
||
////////////////////////////////////////////////////////////////////////////////
|
||
|
||
// 包含的头文件
|
||
#include <bsp_ser.h>
|
||
#include "Usart.h"
|
||
/// 打印字节
|
||
///
|
||
/// @param c: 需要打印的字符
|
||
/// @param none
|
||
/// @return none
|
||
/// @note 修改日志
|
||
/// gkl与2017-05-27创建
|
||
static void term_uart_wrbyte(CPU_INT08U c)
|
||
{
|
||
while(RESET == usart_flag_get(USART0, USART_FLAG_TBE)){}
|
||
//写寄存器
|
||
usart_data_transmit(USART0, c);
|
||
//等待发送完成
|
||
while(RESET == usart_flag_get(USART0, USART_FLAG_TC)){}
|
||
}
|
||
|
||
/// 打印字符串
|
||
///
|
||
/// @param *p_str:需打印的字符串指针
|
||
/// @param none
|
||
/// @return none
|
||
/// @note 修改日志
|
||
/// gkl与2017-05-27创建
|
||
//BSP_OS_SEM ser_mutex;//用于锁调用发生一个字节函数
|
||
void term_uart_wrstr (CPU_CHAR *p_str)
|
||
{
|
||
CPU_BOOLEAN err;
|
||
|
||
|
||
// err = BSP_OS_SemWait(&ser_mutex, 0u); /* Obtain access to the serial interface */
|
||
// if (err != DEF_OK ) {
|
||
// return;
|
||
// }
|
||
while ((*p_str) != (CPU_CHAR )0u) {
|
||
if (*p_str == ASCII_CHAR_LINE_FEED) {
|
||
term_uart_wrbyte(ASCII_CHAR_CARRIAGE_RETURN);
|
||
term_uart_wrbyte(ASCII_CHAR_LINE_FEED);
|
||
p_str++;
|
||
} else {
|
||
term_uart_wrbyte(*p_str++);
|
||
}
|
||
}
|
||
// BSP_OS_SemPost(&ser_mutex);
|
||
}
|
||
|
||
/// 格式打印
|
||
///
|
||
/// @param none
|
||
/// @param none
|
||
/// @return none
|
||
/// @note 修改日志
|
||
/// gkl与2017-05-27创建
|
||
void term_printf (CPU_CHAR *format, ...)
|
||
{
|
||
static CPU_CHAR buffer[200u + 1u];
|
||
va_list vArgs;
|
||
|
||
memset(buffer,'0',sizeof(buffer));
|
||
|
||
va_start(vArgs, format);
|
||
vsprintf((char *)buffer, (char const *)format, vArgs);
|
||
va_end(vArgs);
|
||
|
||
term_uart_wrstr((CPU_CHAR*) buffer);
|
||
}
|
||
|
||
#include "ptz_struct.h"
|
||
void ptz_printf(unsigned char *buffer,unsigned short int buff_size)
|
||
{//该函数不能在中断中使用
|
||
if(g_ptz.ptz_printf.net_udp_printf_switch == LOCATION_RETURN_ON)
|
||
{
|
||
//发送数据
|
||
send_udp_data_aim(buffer, buff_size,
|
||
(struct sockaddr*)&g_ptz.ptz_printf.printf_from, g_ptz.ptz_printf.printf_fromlen);
|
||
}
|
||
|
||
|
||
if(g_ptz.ptz_printf.uart_422_printf_switch == LOCATION_RETURN_ON)
|
||
{
|
||
ptz_send_data(PTZ_UART_422, buffer, buff_size);
|
||
}
|
||
|
||
|
||
if(g_ptz.ptz_printf.uart_485_printf_switch == LOCATION_RETURN_ON)
|
||
{
|
||
ptz_send_data(PTZ_UART_485, buffer, buff_size);
|
||
}
|
||
}
|
||
|
||
|
||
void ptz_printf_init()
|
||
{
|
||
g_ptz.ptz_printf.printf_from.sin_family = PF_INET;
|
||
g_ptz.ptz_printf.printf_from.sin_port = htons(8888);
|
||
g_ptz.ptz_printf.printf_from.sin_addr.s_addr = inet_addr("192.168.8.222");
|
||
g_ptz.ptz_printf.printf_fromlen = sizeof(g_ptz.ptz_printf.printf_from);
|
||
|
||
g_ptz.ptz_printf.net_udp_printf_switch = LOCATION_RETURN_ON;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|