aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.CodeGeneration/ProtoEnumFile.cs
blob: 2a4ad5d35c2346e5df31a07f3bffbc655ae72047 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tango.CodeGeneration
{
    public class ProtoEnumFile : EnumerationFile
    {
        public String Package { get; set; }
        public List<String> Imports { get; set; }

        public ProtoEnumFile()
        {
            Imports = new List<string>();
        }
    }
}
#include <Container.h>
#include "include.h"
/*#include <stdbool.h>
#include <stdio.h>
#include <xdc/runtime/System.h>
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>
//#include <ti/drivers/USBMSCHFatFs.h>
#include <driverlib/sysctl.h>
#include <driverlib/interrupt.h>
#include <driverlib/rom_map.h>
#include <ti/sysbios/knl/Semaphore.h>
*/
#include <driverlib/sysctl.h>
#include "Drivers/USB_Communication/USBCDCD.h"
#include "Drivers/I2C_Communication/I2C.h"
#include "PMR/common/MessageContainer.pb-c.h"
#include "Common/Sys_PinOut_Config/Pin.h"
#include "Common/Sys_PinOut_Config/Pin_config.h"
#include "Common/utilities/idle_task.h"
#include "Drivers/ADC_Sampling/ADC.h"

#include "drivers/Heater/Heater.h"
#include "drivers/Motors/Motor.h"

#include "Communication/CommunicationTask.h"

#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>
#include <xdc/runtime/Types.h>

#include <xdc/runtime/Main.h>
#include <xdc/runtime/Assert.h>

#include <drivers/Flash_Memory/Flash_Memory.h>
#include "drivers/Flash_ram/FlashProgram.h"

#include <DataDef.h>
#include "Sys_PinOut_Config/MCU_MAIN_pinout.h"

/*
#include "Drivers/SPI_SDCARD/SDSPI.h"
#include "Drivers/SPI_SDCARD/SDCardSPI.h"
#include "Drivers/Ethernet_Config/EMACCommon.h"
#include "Drivers/USBStick_FileSys/USBstick.h"
#include "Drivers/USBStick_FileSys/USBMSCHFatFs.h"
*/
#include "Modules/Control/control.h"
#include "Modules/Control/MillisecTask.h"
#include "Modules/Heaters/Heaters_ex.h"
#include "Modules/Ids/Ids_ex.h"

#include "StateMachines/Printing/PrintingSTM.h"
#include "StateMachines/Initialization/InitSequence.h"
#include "StateMachines/Initialization/PowerIdle.h"
#include <Drivers/SSI_Comm/SSI_Comm.h>
#include "drivers/SPI/SPI_Comm.h"
#include "drivers/Uart_Comm/Uart.h"
#include "drivers/valves/valve.h"

#include "drivers/FPGA/FPGA.h"
#include <drivers/FPGA/FPGA_Comm.h>
#include <drivers/FPGA/FPGA_INTERRUPTS/fpga_interrupts.h>

#include "Drivers/I2C_Communication/I2C.h"

#include "Drivers/I2C_Communication/Dispenser_Card/EEPROM/Dispenser_EEPROM.h"

#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"

#include "drivers/Flash_Memory/FATFS/ff.h"
#include "drivers/Flash_Memory/FATFS/Control_File_System.h"

#include "Modules/General/buttons.h"
#include "Modules/Waste/Waste.h"
#include <Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h>
#define WATCHDOG


//*****************************************************************************
//
// The system tick rate expressed both as ticks per second and a millisecond
// period.
//
//*****************************************************************************
#define TICKS_PER_SECOND        1000


//*****************************************************************************
//
// Global system tick counter
//
//*****************************************************************************
static volatile uint32_t g_ui32SysTickCount = 0;

// Flags used to pass commands from interrupt context to the main loop.
static volatile uint32_t g_ui32Flags;

bool Machine_Idle_Mode = false;


F2_CTRL_REG F2_CTRL_Reg;
F1_GPO_REG F1_GPO_Reg;

F3_GPO_01_REG F3_GPO_01_Reg;

Types_Site *site;
Error_Id eid;
int eCode;

/* ======== errHook ======== */
Void errHook(Error_Block *eb)
{
    FRESULT Fresult = FR_OK;
    FIL *FileHandle = 0;  //the system supports a single active file
    uint32_t Bytes = 0;
    char ErrorPath[50] = "0://ErrFile.txt";
    char File[50] = "";
    char message[300];
    int len;

    STATUS_GREEN_LED_OFF;
    ACTIVITY_GREEN_LED_OFF;
    COMM_GREEN_LED_OFF;

    STATUS_RED_LED_ON;
    ACTIVITY_RED_LED_ON;
    COMM_RED_LED_ON;

    site = Error_getSite(eb);
    eid = Error_getId(eb);
    eCode = Error_getCode(eb);
    FileHandle = my_malloc(sizeof(FIL));
    if (FileHandle == 0)
        Fresult = FR_DENIED;
    else
    {
        Fresult = f_open(FileHandle,ErrorPath,FA_OPEN_ALWAYS | FA_WRITE | FA_READ);
        if (Fresult == FR_OK)
        {
            f_lseek(FileHandle, FileHandle->fsize);
            strcpy(File,site->file);
            len = usnprintf(message, 80, "\r\n%s %s",__DATE__, __TIME__);
            Fresult = f_write(FileHandle,message,len,&Bytes );
            /* print user supplied error code */
            len = usnprintf(message, 300, "\r\nerror %d, eid %d  mod %d file %s line %d",
                            eCode, eid,site->mod,
                            site->file,site->line);
            Fresult = f_write(FileHandle,message,len,&Bytes );

            LOG_ERROR (eCode, "error # ");
            /* check originator's mod id against known mods */
            if (site->mod == Main_Module_id()) {
                Fresult = f_write(FileHandle,"\r\napp error: ",12,&Bytes );
            }

            /* check error id against known errors */
            if (eid == Error_E_generic) {
                Fresult = f_write(FileHandle,"generic: ",10,&Bytes );
            }
            else if (eid == Assert_E_assertFailed) {
                System_printf("assertion violation: ");
                Fresult = f_write(FileHandle,"\r\nassertion violation: ",22,&Bytes );
            }

            /* perform default error output */
            f_close(FileHandle);
        }
        Task_sleep (200);
        my_free(FileHandle);
    }
    //Power_Reset();
    SysCtlReset();
}

//*****************************************************************************
//
// Interrupt handler for the system tick counter.
//
//*****************************************************************************
void SysTickHandler(void)
{
    // Update our system time.
    g_ui32SysTickCount++;
}

void Init_EVB()
{

    InitPinOutPullUps();

    #ifdef Stub_Mode
    //MOTOR Driver L6470 SPI
    SPI2_Init();
    init_BUSY_Pin();

    //Danser_ENC:
    SSI1_Init(); // Read dancer ENC SSI

    #endif

}

int main(void)
{
    // Enable interrupts to the processor.
    //
    ROM_IntMasterDisable();
	//Set the clock 120MHz
	uint32_t ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), SYS_CLK_FREQ);


    // Enable the system tick.
    ROM_SysTickPeriodSet(ui32SysClock / TICKS_PER_SECOND);
    ROM_SysTickIntEnable();
    ROM_SysTickEnable();

//    FlashInit();

    Calculateinit();

	PortFunctionInit();

    #ifdef EVALUATION_BOARD
        Init_EVB();
    #endif

   Init_All_I2C();


    #ifndef EVALUATION_BOARD
        STATUS_GREEN_LED_ON;
	    FPGA_Init();
    #endif

	MAP_FPULazyStackingEnable();

    SysCtlUSBPLLEnable();

#ifndef EVALUATION_BOARD
    DeActivateAllSSR();
    Control_Dryer_Fan(STOP,0);//Preventing unwanted movement at power up, since the default from FPGA is "0" (= START)
#endif

#ifdef WATCHDOG
	InitWatchdog(ui32SysClock*2);
#endif

	CommunicationTaskInit();
	utilsInit(ui32SysClock);

#ifndef EVALUATION_BOARD
	//Turn_the_Blower_On();//Turn on with the Default_Voltage
	ActivateChiller();//WHS Cooler SSR9
	//ActivateHeadMagnet();
#endif

	//EMAC_initEMAC();
    ControlInit();
    MillisecInit();
    ControlStart();
    Heaters_Init();
    MotorsInit();
//Shai    WHS_HW_test(); // for WHS sensor test
   WHS_init();
   Buttons_Init();
    //IDS_ModuleInit();
    Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Waste);

    ////////////////////////////


    Check_Dispenser_Type();
    //FPGA_Read_limit_Switches_Registers();

    //calibration(); //test vme communication

    FRESULT iFResult = Init_Flash_File_System(false);
    if(iFResult != FR_OK)
    {
        LOG_ERROR (iFResult, "Error during init Flash File System");
        assert(iFResult);
    }
    //Control_File_System();// test file system
   //IDS_ModuleInit();

    //GetFiles(); - to start jtag
    //GetVmeByte();

    //I2C_NFC_Test();
    //
    //test_avi(); //example for shai
    Init_Dispensers_IO_Registers(&Disp_IO_Reg);


    Set_Speed_Sensor_TypeII_Registers(2,2);//set default values
    //Read_Speed_Sensor_TypeII();//must be delay between Set_Speed_Sensor_TypeII_Registers to Read_Speed_Sensor_TypeII

    //Test_ADS120_Internal_Temperature_Sensor(0);

    #ifndef EVALUATION_BOARD
        Init_Machine_Leds();
    #endif


    // Enable interrupts to the processor.
    //
    ROM_IntMasterEnable();


    IDLE_TASK_package_init();

    Start_InitSequence();
    PowerIdleInit();
    BIOS_start();


    return (0);
    //while(1){};
}