You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.2 KiB
115 lines
3.2 KiB
|
3 weeks ago
|
/*
|
||
|
|
* bsp_desulfurizer_handler.c
|
||
|
|
*
|
||
|
|
* Created on: Jul 29, 2024
|
||
|
|
* Author: akeguo
|
||
|
|
*/
|
||
|
|
#include "msp_WH_LTE_7S0.h"
|
||
|
|
|
||
|
|
#include "pb_decode.h"
|
||
|
|
#include "pb_encode.h"
|
||
|
|
#include "bsp_include.h"
|
||
|
|
#include "pb.h"
|
||
|
|
|
||
|
|
#include "bsp_Cmd.pb.h"
|
||
|
|
#include <stdio.h>
|
||
|
|
#include <stdbool.h>
|
||
|
|
#include <stdlib.h>
|
||
|
|
|
||
|
|
|
||
|
|
#include "BHBF_ROBOT.h"
|
||
|
|
#include "bsp_cpu_flash.h"
|
||
|
|
#include <bsp_qspi_w25q128.h>
|
||
|
|
#include <bsp_UpperComputer_Handler.h>
|
||
|
|
|
||
|
|
#include "bsp_decode_command.h"
|
||
|
|
void decode_command_from_computer(uint8_t *buffer, uint16_t length);
|
||
|
|
struct UARTHandler *desulfurizer_message_UART_Handler;
|
||
|
|
|
||
|
|
void upper_Computer_UART_Handler_intialize(struct UARTHandler *Handler)
|
||
|
|
{
|
||
|
|
|
||
|
|
//LOG("desulfurizer_message_UART_Handler_intialize");
|
||
|
|
desulfurizer_message_UART_Handler = Handler;
|
||
|
|
desulfurizer_message_UART_Handler->dispacherController->Dispacher_Enable=0;//不周期性发送
|
||
|
|
desulfurizer_message_UART_Handler->Wait_time=30;
|
||
|
|
desulfurizer_message_UART_Handler->UART_Decode =
|
||
|
|
decode_command_from_computer; //indicate that there is no need to listen
|
||
|
|
//desulfurizer_message_UART_Handler->DispacherCallPeriod=200;
|
||
|
|
|
||
|
|
//desulfurizer_message_UART_Handler->Add_Dispatcher_List(desulfurizer_message_UART_Handler,steering_set_angle);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void send_data_to_upper_computer(double Angle, double WireLength,
|
||
|
|
double Thickness, char IsFittingPoint,char isMqtt,struct UARTHandler *send_UART_Handler)
|
||
|
|
{
|
||
|
|
// LOG("send collected data to computer");
|
||
|
|
// DesulfurizerMessage _desulfurizer = DesulfurizerMessage_init_default;
|
||
|
|
// pb_ostream_t output_stream =
|
||
|
|
// { 0 };
|
||
|
|
//
|
||
|
|
// _desulfurizer.Angle = Angle;
|
||
|
|
// _desulfurizer.WireLength = WireLength;
|
||
|
|
// _desulfurizer.Thickness = Thickness;
|
||
|
|
// _desulfurizer.IsFittingPoint = IsFittingPoint;
|
||
|
|
// char buf[1024];
|
||
|
|
// output_stream = pb_ostream_from_buffer(buf, sizeof(buf));
|
||
|
|
// pb_encode(&output_stream, DesulfurizerMessage_fields, &_desulfurizer); //encode to buffer
|
||
|
|
|
||
|
|
// Cmd send_Cmd = Cmd_init_default;
|
||
|
|
//
|
||
|
|
// //将数据拷贝到Command中
|
||
|
|
// send_Cmd.CommadNum = 5;
|
||
|
|
// send_Cmd.Buff_Data_Length = output_stream.bytes_written;
|
||
|
|
// //拷贝数据到send_Cmd.Buff_Data中
|
||
|
|
// memcpy(send_Cmd.Buff_Data, buf, send_Cmd.Buff_Data_Length);
|
||
|
|
// pb_ostream_t Cmd_out_stream =
|
||
|
|
// { 0 };
|
||
|
|
//
|
||
|
|
// if(isMqtt==1)
|
||
|
|
// {
|
||
|
|
// Cmd_out_stream = pb_ostream_from_buffer(
|
||
|
|
// &send_UART_Handler->Tx_Buf[2],
|
||
|
|
// sizeof(desulfurizer_message_UART_Handler->Tx_Buf)-2);
|
||
|
|
// pb_encode(&Cmd_out_stream, Cmd_fields, &send_Cmd); //encode to buffer
|
||
|
|
// send_UART_Handler->Tx_Buf[0]='3';
|
||
|
|
// send_UART_Handler->Tx_Buf[1]=',';
|
||
|
|
// send_UART_Handler->TxCount = Cmd_out_stream.bytes_written+2;
|
||
|
|
// send_UART_Handler->UART_Tx(
|
||
|
|
// send_UART_Handler);
|
||
|
|
// }
|
||
|
|
// else
|
||
|
|
// {
|
||
|
|
// Cmd_out_stream = pb_ostream_from_buffer(
|
||
|
|
// send_UART_Handler->Tx_Buf,
|
||
|
|
// sizeof(send_UART_Handler->Tx_Buf));
|
||
|
|
// pb_encode(&Cmd_out_stream, Cmd_fields, &send_Cmd); //encode to buffer
|
||
|
|
//
|
||
|
|
// send_UART_Handler->TxCount = Cmd_out_stream.bytes_written;
|
||
|
|
// send_UART_Handler->UART_Tx(
|
||
|
|
// send_UART_Handler);
|
||
|
|
// }
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void decode_command_from_computer(uint8_t *buffer, uint16_t length)
|
||
|
|
{
|
||
|
|
|
||
|
|
if(*buffer==0x55 && *(buffer+1)==0x55 && length>=3)
|
||
|
|
{
|
||
|
|
decode_command_and_feedback(buffer+2, length-2, 0,
|
||
|
|
desulfurizer_message_UART_Handler);//0代表非mqtt
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|