matlab_23550/Inu/Src2/main/can_bs2bs.c

84 lines
1.9 KiB
C

/*
* can_bs2bs.c
*
* Created on: 27 îêò. 2020 ã.
* Author: stud
*/
#include <281xEvTimersInit.h>
#include <can_bs2bs.h>
#include <edrk_main.h>
#include <math.h>
#include <project.h>
#include "control_station.h"
#include "CAN_Setup.h"
#include "global_time.h"
#include "IQmathLib.h"
#include "mathlib.h"
#include "DSP281x_Examples.h" // DSP281x Examples Include File
#include "DSP281x_SWPrioritizedIsrLevels.h" // DSP281x Examples Include File
#include "DSP281x_Device.h"
#include "xp_project.h"
#include "another_bs.h"
#pragma DATA_SECTION(Unites2SecondBS, ".slow_vars")
int Unites2SecondBS[SIZE_ARR_CAN_UNITES_BS2BS]={0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0\
};
int max_count_send_to_can2second_bs = SIZE_ARR_CAN_UNITES_BS2BS;
void SendAll2SecondBS(unsigned int pause)
{
static int time_tick_modbus_can=0;
static unsigned int old_PWM_ticks=0;
static int count_write_to_modbus_can=0;
static int time_send_to_can=0;
int real_mbox, n_box;
//send to another BS
if (detect_pause_milisec(pause, &old_PWM_ticks))
{
// if (edrk.flag_second_PCH==0)
// n_box = ANOTHER_BSU2_CAN_DEVICE;
// else
n_box = ANOTHER_BSU1_CAN_DEVICE;
time_tick_modbus_can=0;
time_send_to_can=0;
UpdateTableSecondBS();
real_mbox = get_real_out_mbox (UNITS_TYPE_BOX, n_box);
if (CAN_cycle_full_free(real_mbox,CAN_BOX_STAT_ON))
{
CAN_cycle_send( UNITS_TYPE_BOX, n_box, 0, &Unites2SecondBS[0], max_count_send_to_can2second_bs, CAN_BOX_STANDART_ADR, CAN_BOX_PRIORITY_NORMAL);// ïðèìåðíî 40 ìñåê. èäåò îòïðàâêà âñåé ïîñûëêè
}
}
}