Interrupt_test

Dependencies:   mbed-rtos mbed

Fork of ADF_test_2 by shubham c

Committer:
ee12b079
Date:
Fri Jul 08 06:07:14 2016 +0000
Revision:
18:25e7644115f2
Parent:
17:f410d4327247
Child:
19:a4ce74cca3fa
Integrating with CDMS CODE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
krishanprajapat 1:0b0579f5bbef 1 //Working for ISR = 2 28/12/2015 7:02 PM
krishanprajapat 5:0f1594e416ae 2 //working for ISR = 10 29/12/2015 10:43 AM
ee12b079 17:f410d4327247 3 /*remove me*/
ee12b079 17:f410d4327247 4 #define bypass_adf 0
ee12b079 17:f410d4327247 5 /**/
krishanprajapat 1:0b0579f5bbef 6
ee12b079 17:f410d4327247 7 #define START_ADDRESS 0x020;
ee12b079 17:f410d4327247 8 #define MISO_PIN PTE3
ee12b079 17:f410d4327247 9 /**************Defining Counter Limits**************/
ee12b079 17:f410d4327247 10 #define THRS 20
ee12b079 17:f410d4327247 11 #define STATE_ERR_THRS 20
ee12b079 17:f410d4327247 12 #define PHY_OFF_EXEC_TIME 300
ee12b079 17:f410d4327247 13 #define PHY_ON_EXEC_TIME 300
ee12b079 17:f410d4327247 14 #define PHY_TX_EXEC_TIME 600
ee12b079 17:f410d4327247 15 /******DEFINING COMMANDS*********/
ee12b079 17:f410d4327247 16 #define CMD_HW_RESET 0xC8
ee12b079 17:f410d4327247 17 #define CMD_PHY_ON 0xB1
ee12b079 17:f410d4327247 18 #define CMD_PHY_OFF 0xB0
ee12b079 17:f410d4327247 19 #define CMD_PHY_TX 0xB5
ee12b079 17:f410d4327247 20 #define CMD_CONFIG_DEV 0xBB
ee12b079 17:f410d4327247 21 /**STATES**/
ee12b079 17:f410d4327247 22 //=======================
ee12b079 17:f410d4327247 23 #define PHY_OFF 0xB1
ee12b079 17:f410d4327247 24 #define PHY_ON 0xB2
ee12b079 17:f410d4327247 25 #define PHY_TX 0xB4
ee12b079 17:f410d4327247 26 #define BUSY 0x00
ee12b079 17:f410d4327247 27 //===================================================
krishanprajapat 0:578d0f87988f 28
krishanprajapat 0:578d0f87988f 29 //without reset feature , with state checks.
krishanprajapat 0:578d0f87988f 30 #include<iostream>
krishanprajapat 0:578d0f87988f 31 #include"mbed.h"
krishanprajapat 0:578d0f87988f 32 #define ADF_IRQ PTA14
krishanprajapat 0:578d0f87988f 33 #define SPI_MOSI PTE1
krishanprajapat 0:578d0f87988f 34 #define SPI_MISO PTE3
krishanprajapat 0:578d0f87988f 35 #define SPI_CLK PTE2
krishanprajapat 0:578d0f87988f 36 #define SPI_CS_ADF PTA15
ee12b079 17:f410d4327247 37 /*Rolling_Buffer_Parameters*/
ee12b079 17:f410d4327247 38
ee12b079 17:f410d4327247 39 #define TRANSMIT_LEN_1 0xFF
ee12b079 17:f410d4327247 40 #define TRANSMIT_LEN_2 0xFF
ee12b079 17:f410d4327247 41 /***/
ee12b079 17:f410d4327247 42 Timer T;
krishanprajapat 0:578d0f87988f 43 Serial gPC( USBTX, USBRX );
krishanprajapat 0:578d0f87988f 44 //gPC.baud(1200);
krishanprajapat 0:578d0f87988f 45 InterruptIn IRQ(ADF_IRQ);
ee12b079 17:f410d4327247 46 //Ticker ticker;
ee12b079 17:f410d4327247 47 SPI spi(PTE1, PTE3, PTE2);
krishanprajapat 0:578d0f87988f 48 DigitalOut gCS_ADF(SPI_CS_ADF);
krishanprajapat 0:578d0f87988f 49 DigitalOut led(LED_RED);
krishanprajapat 0:578d0f87988f 50 unsigned int Adf_data_counter=0;
krishanprajapat 0:578d0f87988f 51 unsigned char status =0;
krishanprajapat 0:578d0f87988f 52 unsigned int cmd_err_cnt=0;
krishanprajapat 3:bac82a182b28 53 unsigned int data_length;
krishanprajapat 0:578d0f87988f 54 unsigned int state_err_cnt=0;
krishanprajapat 0:578d0f87988f 55 unsigned int miso_err_cnt=0;
krishanprajapat 0:578d0f87988f 56 unsigned int hw_reset_err_cnt=0;
krishanprajapat 3:bac82a182b28 57 unsigned int counter =0;
ee12b079 17:f410d4327247 58 bool temp_return = 0;
krishanprajapat 0:578d0f87988f 59 bool bcn_flag=0;
krishanprajapat 0:578d0f87988f 60 bool bbram_flag=0;
krishanprajapat 0:578d0f87988f 61
krishanprajapat 0:578d0f87988f 62 bool stop_transmission=false;
krishanprajapat 0:578d0f87988f 63 bool sent_tmfrom_SDcard;
krishanprajapat 0:578d0f87988f 64 bool loop_on;
krishanprajapat 0:578d0f87988f 65 bool ADF_off;
krishanprajapat 0:578d0f87988f 66 bool buffer_state;
krishanprajapat 0:578d0f87988f 67 uint8_t signal = 0x00;
ee12b079 17:f410d4327247 68
ee12b079 17:f410d4327247 69 //unsigned char bbram_buffer[66]= {0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,0x7F,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x10,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00};
ee12b079 17:f410d4327247 70 unsigned char bbram_buffer[66]={0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,/*PA Level Byte*/0x7F/*PA Parameters*/,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x20,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xE0,0x00,0x10,0x04,0x00,0x00,0x00,0x00,0x00};
ee12b079 17:f410d4327247 71 //unsigned char Adf_data[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
ee12b079 17:f410d4327247 72 unsigned char Adf_data[]= {0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
ee12b079 17:f410d4327247 73
ee12b079 17:f410d4327247 74 unsigned char Segment[] = {0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x9D,0xEB,0x24,0xB6,0xAD,0x59,0x15,0xFA,0xD0,0x33,0x6E,0x3A,0x69,0x60,0x10,0xF8,0x58,0x96,0x58,0x5C,0x60,0xC6,0x9D,0xA2,0x5E,0x5D,0x19,0x54,0x21,0xEC,0xCC,0xC4,0x97,0x3B,0x6E,0xC2,0xC8,0x22,0x0E,0x7E,0x39,0xE8,0x8E,0x66,0x29,0x1B,0x1A,0x90,0xD8,0x00,0xF1,0x5E,0x6F,0x6F,0x18,0xC0,0x9C,0xA9,0xE6,0x7C,0xCA,0xD2,0x42,0xAA,0x91,0xBA,0x4D,0x56,0xA3,0x11,0x20,0x58,0x28,0x73,0xD8,0x08,0x5A,0xFC,0xFF,0x14,0x3C,0xF8,0x6B,0x66,0xF8,0x8C,0x55,0x0C,0xB2,0x17,0x52,0x92,0x53,0xF6,0x65,0x72,0x3B,0xE0,0xAB,0xBA,0xDD,0x58,0x00,0x54,0x2E,0x1C,0xD6,0xE2,0x2D,0xE8,0x5D,0xDA,0x61,0x3A,0x06,0x04,0xE3,0x44,0x20,0x44,0x31,0x4E,0xE6,0x22,0x42,0xD1,0x01,0x70,0x65,0x65,0xA1,0x46,0xFE,0x41,0xB7,0x54,0xC4,0xAE,0xE4,0xEE,0x70,0x35,0x08,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB0,0x1E,0x45,0xCC,0xCE,0xC2,0x5F,0x30,0x61,0x34,0x16,0x54,0xE2,0xAA,0x2C,0xFE,0xF3,0x32,0xC2,0x6A,0x09,0x7D,0xC5,0x6C,0x25,0x02,0x14,0x5A,0x0E,0xA8,0x82,0x78,0x4E,0x8D,0xE7,0xBE,0x04,0xCB,0x07,0x8C,0x4C,0xDA,0x9D,0x62,0xAD,0xB6,0x91,0x40,0x2A,0x9E,0x83,0x86,0xDC,0x2E,0x7C,0x24,0x60,0x32,0x29,0x0C,0x29,0x17,0xA6,0x46,0x0A,0x95,0x1E,0xF0,0xA7,0xC9,0xC5,0x08,0x3E,0x8E,0x14,0xBA,0x69,0x6B,0x53,0x40,0x96,0x64,0x13,0x6A,0x7D,0xD8,0x40,0xC4,0x23,0xFB,0x4E,0x0C,0x65,0xFD,0x03,0x9E,0x4B,0xFC,0x5D,0x80,0x3A,0x54,0x88,0x5E,0xF3,0x3D,0x9F,0xA4,0xB1,0x07,0x8B,0x16,0x6C,0x97,0x07,0xE8,0x5A,0x17,0x95,0xFC,0xCA,0x1F,0x8B,0x3E,0x29,0xE7,0xD6,0xBE,0x3C,0xEE,0x30,0x28,0x5A,0xC9,0xE2,0x36,0xDE,0x31,0x41,0x7A,0x30,0xED,0x7B,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
ee12b079 17:f410d4327247 75 unsigned char EOS[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
ee12b079 17:f410d4327247 76 unsigned char max_segment = (65535 - 120)/(48 + 40*134);//12
ee12b079 17:f410d4327247 77
ee12b079 17:f410d4327247 78
ee12b079 17:f410d4327247 79
ee12b079 17:f410d4327247 80
krishanprajapat 0:578d0f87988f 81
krishanprajapat 0:578d0f87988f 82 unsigned char buffer_112[112];
krishanprajapat 0:578d0f87988f 83 //int initialise_card();
krishanprajapat 0:578d0f87988f 84 //int disk_initialize();
krishanprajapat 0:578d0f87988f 85
ee12b079 17:f410d4327247 86
ee12b079 17:f410d4327247 87 #define reset_flags {\
ee12b079 18:25e7644115f2 88 finish_write_data = false;\
ee12b079 18:25e7644115f2 89 buffer_state = true;\
ee12b079 18:25e7644115f2 90 last_buffer = false;\
ee12b079 18:25e7644115f2 91 loop_on = true;\
ee12b079 18:25e7644115f2 92 ADF_off = false;\
ee12b079 18:25e7644115f2 93 buffer_state = true;
ee12b079 18:25e7644115f2 94 loop_on = true;
ee12b079 18:25e7644115f2 95 ADF_off = false;
ee12b079 18:25e7644115f2 96 sent_tmfrom_SDcard = false;
ee12b079 14:eee578d96cfe 97 Adf_data_counter=0;\
ee12b079 14:eee578d96cfe 98 status =0;\
ee12b079 14:eee578d96cfe 99 cmd_err_cnt=0;\
ee12b079 14:eee578d96cfe 100 data_length;\
ee12b079 14:eee578d96cfe 101 state_err_cnt=0;\
ee12b079 14:eee578d96cfe 102 miso_err_cnt=0;\
ee12b079 14:eee578d96cfe 103 hw_reset_err_cnt=0;\
ee12b079 14:eee578d96cfe 104 counter =0;\
ee12b079 14:eee578d96cfe 105 bcn_flag=0;\
ee12b079 14:eee578d96cfe 106 bbram_flag=0;\
ee12b079 14:eee578d96cfe 107 stop_transmission=false;\
ee12b079 14:eee578d96cfe 108 }
ee12b079 17:f410d4327247 109 int segment_len=sizeof(Segment);
ee12b079 17:f410d4327247 110 int EOS_len=sizeof(EOS);
ee12b079 17:f410d4327247 111 int total_no_of_segments=240;
ee12b079 17:f410d4327247 112 int no_of_segments=0;
ee12b079 17:f410d4327247 113 bool EOS_f=false;
ee12b079 17:f410d4327247 114 bool segment_f=true;
ee12b079 17:f410d4327247 115 #define restart_adf {\
ee12b079 17:f410d4327247 116 gCS_ADF=0;\
ee12b079 17:f410d4327247 117 spi.write(CMD_PHY_ON);\
ee12b079 17:f410d4327247 118 gCS_ADF=1;\
ee12b079 17:f410d4327247 119 wait(2);\
ee12b079 17:f410d4327247 120 Adf_data_counter = 0;\
ee12b079 17:f410d4327247 121 EOS_f=0;\
ee12b079 17:f410d4327247 122 segment_f=1;\
ee12b079 17:f410d4327247 123 // printf("seg=%d\n",no_of_segments);\
ee12b079 17:f410d4327247 124 gCS_ADF=0;\
ee12b079 17:f410d4327247 125 spi.write(CMD_PHY_TX);\
ee12b079 17:f410d4327247 126 gCS_ADF=1;\
ee12b079 17:f410d4327247 127 }
ee12b079 17:f410d4327247 128 int err_arr[64];
ee12b079 17:f410d4327247 129 bool bbram_err=false;
ee12b079 17:f410d4327247 130 int err_idx=-1;
ee12b079 17:f410d4327247 131 int err[64];
ee12b079 17:f410d4327247 132 #define bbram_check gCS_ADF=0;\
ee12b079 17:f410d4327247 133 for(int i=0;i<64;i++){\
ee12b079 17:f410d4327247 134 err_arr[i]=0;\
ee12b079 17:f410d4327247 135 }\
ee12b079 17:f410d4327247 136 for(int i=0;i<64;i++){\
ee12b079 17:f410d4327247 137 err[i]=0;\
ee12b079 17:f410d4327247 138 }\
ee12b079 17:f410d4327247 139 bbram_err=false;\
ee12b079 17:f410d4327247 140 gCS_ADF=0;\
ee12b079 17:f410d4327247 141 spi.write(0x39);\
ee12b079 17:f410d4327247 142 spi.write(0x00);\
ee12b079 17:f410d4327247 143 spi.write(0xFF);\
ee12b079 17:f410d4327247 144 for(int i=0;i<64;i++){\
ee12b079 17:f410d4327247 145 err_arr[i]=spi.write(0xFF);\
ee12b079 17:f410d4327247 146 if(err_arr[i]!=bbram_buffer[i+2]){\
ee12b079 17:f410d4327247 147 err[i]=1;\
ee12b079 17:f410d4327247 148 bbram_err=true;\
ee12b079 17:f410d4327247 149 }\
ee12b079 17:f410d4327247 150 }\
ee12b079 17:f410d4327247 151 gCS_ADF=1;\
ee12b079 17:f410d4327247 152 if(!bbram_err)\
ee12b079 17:f410d4327247 153 gPC.printf("BBRAM verified \r\n");\
ee12b079 17:f410d4327247 154 else\
ee12b079 17:f410d4327247 155 gPC.printf("BBRAM error \r\n");\
ee12b079 17:f410d4327247 156
ee12b079 17:f410d4327247 157
ee12b079 17:f410d4327247 158 bool tx_loop=1;
ee12b079 17:f410d4327247 159 //========================OLD Transmit data=========================================================================================
krishanprajapat 0:578d0f87988f 160 void transmitdata(){ // copy the data to be transmitted to bufer_112
krishanprajapat 0:578d0f87988f 161 for(int i=0;i<112;i++){
krishanprajapat 0:578d0f87988f 162 buffer_112[i]=Adf_data[Adf_data_counter];
krishanprajapat 0:578d0f87988f 163 Adf_data_counter++;
krishanprajapat 3:bac82a182b28 164 if(data_length==Adf_data_counter){
krishanprajapat 0:578d0f87988f 165 stop_transmission= true;
ee12b079 14:eee578d96cfe 166 Adf_data_counter = 0;
krishanprajapat 0:578d0f87988f 167 break;
krishanprajapat 0:578d0f87988f 168 }
krishanprajapat 0:578d0f87988f 169 }
krishanprajapat 0:578d0f87988f 170 }
krishanprajapat 0:578d0f87988f 171
ee12b079 17:f410d4327247 172
ee12b079 17:f410d4327247 173
ee12b079 17:f410d4327247 174 //======================================================NEW TRANSMIT DATA=======================================
ee12b079 17:f410d4327247 175 /*
ee12b079 17:f410d4327247 176 void transmitdata() // copy the data to be transmitted to bufer_112
ee12b079 17:f410d4327247 177 {
ee12b079 17:f410d4327247 178 tx_loop=true;
ee12b079 17:f410d4327247 179 for(int i=0; ((i<112)&&(tx_loop==1)); i++) {
ee12b079 17:f410d4327247 180 if(segment_f) {
ee12b079 17:f410d4327247 181 buffer_112[i]=Adf_data[Adf_data_counter];
ee12b079 17:f410d4327247 182 Adf_data_counter++;
ee12b079 17:f410d4327247 183
ee12b079 17:f410d4327247 184 if(Adf_data_counter==segment_len) {
ee12b079 17:f410d4327247 185 no_of_segments++;
ee12b079 17:f410d4327247 186 Adf_data_counter=0;
ee12b079 17:f410d4327247 187 if(no_of_segments%12==0) {
ee12b079 17:f410d4327247 188 segment_f=0;
ee12b079 17:f410d4327247 189 EOS_f=1;
ee12b079 17:f410d4327247 190 }
ee12b079 17:f410d4327247 191 }
ee12b079 17:f410d4327247 192 }
ee12b079 17:f410d4327247 193 if(EOS_f) {
ee12b079 17:f410d4327247 194 buffer_112[i]=Adf_data[Adf_data_counter];
ee12b079 17:f410d4327247 195 Adf_data_counter++;
ee12b079 17:f410d4327247 196 if(Adf_data_counter==EOS_len) {
ee12b079 17:f410d4327247 197 segment_f=1;
ee12b079 17:f410d4327247 198 EOS_f=0;
ee12b079 17:f410d4327247 199 Adf_data_counter=0;
ee12b079 17:f410d4327247 200 restart_adf;
ee12b079 17:f410d4327247 201 }
ee12b079 17:f410d4327247 202 }
ee12b079 17:f410d4327247 203
ee12b079 17:f410d4327247 204 }
ee12b079 17:f410d4327247 205 }
ee12b079 17:f410d4327247 206 */
ee12b079 17:f410d4327247 207 #define PRNT_ONCE {\
ee12b079 17:f410d4327247 208 printf("%d %d lol_ what?\r\n",segment_len,EOS_len);\
ee12b079 17:f410d4327247 209 }\
ee12b079 17:f410d4327247 210
krishanprajapat 0:578d0f87988f 211 #define bbram_write {\
krishanprajapat 0:578d0f87988f 212 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 213 spi.write(0xB0);\
krishanprajapat 0:578d0f87988f 214 wait_us(300);\
krishanprajapat 0:578d0f87988f 215 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 216 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 217 for(int i=0;i<66;i++){\
krishanprajapat 0:578d0f87988f 218 spi.write(bbram_buffer[i]);\
krishanprajapat 0:578d0f87988f 219 }\
krishanprajapat 0:578d0f87988f 220 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 221 }
krishanprajapat 0:578d0f87988f 222 //------------------------------------------------------------------------
krishanprajapat 0:578d0f87988f 223 // state checking functions
krishanprajapat 0:578d0f87988f 224 //bool assrt_phy_off( int, int, int);
krishanprajapat 0:578d0f87988f 225 //bool assrt_phy_on( int,int,int);
krishanprajapat 0:578d0f87988f 226 //bool assrt_phy_tx(int,int,int);
krishanprajapat 0:578d0f87988f 227
krishanprajapat 0:578d0f87988f 228 #define check_status {\
krishanprajapat 0:578d0f87988f 229 unsigned char stat=0;\
krishanprajapat 0:578d0f87988f 230 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 231 spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 232 stat = spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 233 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 234 status = stat;\
krishanprajapat 0:578d0f87988f 235 }
krishanprajapat 0:578d0f87988f 236
ee12b079 17:f410d4327247 237 /*CMD_VAR*/
ee12b079 17:f410d4327247 238 bool cmd_bit=true;
ee12b079 17:f410d4327247 239 bool cmd_err_flag=false;
ee12b079 17:f410d4327247 240 unsigned char command = 0x00;
ee12b079 17:f410d4327247 241 #define CMD(command) {\
ee12b079 17:f410d4327247 242 cmd_err_cnt=0;\
ee12b079 17:f410d4327247 243 cmd_err_flag=false;\
ee12b079 17:f410d4327247 244 while(cmd_err_cnt<3) {\
krishanprajapat 0:578d0f87988f 245 check_status;\
ee12b079 17:f410d4327247 246 cmd_bit=status&0x20;\
ee12b079 17:f410d4327247 247 if(cmd_bit) {\
ee12b079 17:f410d4327247 248 gCS_ADF=0;\
ee12b079 17:f410d4327247 249 spi.write(command);\
ee12b079 17:f410d4327247 250 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 251 break;\
ee12b079 17:f410d4327247 252 } else {\
ee12b079 17:f410d4327247 253 wait_us(5);\
krishanprajapat 0:578d0f87988f 254 cmd_err_cnt++;\
krishanprajapat 0:578d0f87988f 255 }\
krishanprajapat 0:578d0f87988f 256 }\
ee12b079 17:f410d4327247 257 if(cmd_err_cnt==3) {\
ee12b079 17:f410d4327247 258 cmd_err_flag=true;\
ee12b079 17:f410d4327247 259 }\
ee12b079 17:f410d4327247 260 }\
ee12b079 17:f410d4327247 261 // all three arguments are int\
ee12b079 17:f410d4327247 262 #define assrt_phy_off {\
ee12b079 17:f410d4327247 263 int state_err_cnt = 0;\
ee12b079 17:f410d4327247 264 CMD(CMD_PHY_OFF);\
ee12b079 17:f410d4327247 265 if(cmd_err_flag){\
ee12b079 17:f410d4327247 266 temp_return=1;\
ee12b079 17:f410d4327247 267 }\
ee12b079 17:f410d4327247 268 else{\
ee12b079 17:f410d4327247 269 for(int i = 0 ; i < 40 ;i++){\
ee12b079 17:f410d4327247 270 CMD(CMD_PHY_OFF);\
ee12b079 17:f410d4327247 271 check_status;\
ee12b079 17:f410d4327247 272 if(status == PHY_OFF){\
ee12b079 17:f410d4327247 273 temp_return = 0;\
ee12b079 17:f410d4327247 274 break;\
ee12b079 17:f410d4327247 275 }\
ee12b079 17:f410d4327247 276 else if(state_err_cnt>THRS){\
ee12b079 17:f410d4327247 277 temp_return = 1;\
ee12b079 17:f410d4327247 278 break;\
ee12b079 17:f410d4327247 279 }\
ee12b079 17:f410d4327247 280 else {\
ee12b079 17:f410d4327247 281 wait_ms(1);\
ee12b079 17:f410d4327247 282 }\
ee12b079 17:f410d4327247 283 }\
ee12b079 17:f410d4327247 284 }\
ee12b079 17:f410d4327247 285 }\
krishanprajapat 0:578d0f87988f 286
krishanprajapat 0:578d0f87988f 287
ee12b079 17:f410d4327247 288 bool hardware_reset(int bcn_call)
ee12b079 17:f410d4327247 289 {
ee12b079 17:f410d4327247 290 for(int i= 0; i < 2 ; i++) {
krishanprajapat 0:578d0f87988f 291 gCS_ADF=0;
krishanprajapat 0:578d0f87988f 292 spi.write(CMD_HW_RESET);
krishanprajapat 0:578d0f87988f 293 gCS_ADF=1;
krishanprajapat 0:578d0f87988f 294 wait_ms(2);// Typically 1 ms
krishanprajapat 0:578d0f87988f 295 int count=0;
ee12b079 17:f410d4327247 296 temp_return = 0;
ee12b079 17:f410d4327247 297 while(count<10 && miso_err_cnt<10) {
ee12b079 17:f410d4327247 298 if(MISO_PIN) {
ee12b079 17:f410d4327247 299 // assrt_phy_off;
ee12b079 17:f410d4327247 300 /*asseert_phyoff Starts**/
ee12b079 17:f410d4327247 301 {\
ee12b079 17:f410d4327247 302 int state_err_cnt = 0;\
ee12b079 17:f410d4327247 303 CMD(CMD_PHY_OFF);\
ee12b079 17:f410d4327247 304 if(cmd_err_flag){\
ee12b079 17:f410d4327247 305 temp_return=1;\
ee12b079 17:f410d4327247 306 }\
ee12b079 17:f410d4327247 307 else{\
ee12b079 17:f410d4327247 308 for(int i = 0 ; i < 40 ;i++){\
ee12b079 17:f410d4327247 309 CMD(CMD_PHY_OFF);\
ee12b079 17:f410d4327247 310 check_status;\
ee12b079 17:f410d4327247 311 if(status == PHY_OFF){\
ee12b079 17:f410d4327247 312 temp_return = 0;\
ee12b079 17:f410d4327247 313 break;\
ee12b079 17:f410d4327247 314 }\
ee12b079 17:f410d4327247 315 else if(state_err_cnt>THRS){\
ee12b079 17:f410d4327247 316 temp_return = 1;\
ee12b079 17:f410d4327247 317 break;\
ee12b079 17:f410d4327247 318 }\
ee12b079 17:f410d4327247 319 else {\
ee12b079 17:f410d4327247 320 wait_ms(1);\
ee12b079 17:f410d4327247 321 }\
ee12b079 17:f410d4327247 322 }\
ee12b079 17:f410d4327247 323 }\
ee12b079 17:f410d4327247 324 }\
ee12b079 17:f410d4327247 325 /*Assert_phy_off_ends*/
ee12b079 17:f410d4327247 326
ee12b079 17:f410d4327247 327
ee12b079 17:f410d4327247 328
ee12b079 17:f410d4327247 329
ee12b079 17:f410d4327247 330
krishanprajapat 0:578d0f87988f 331 if(!temp_return){
krishanprajapat 0:578d0f87988f 332 return 0;
krishanprajapat 0:578d0f87988f 333 }
krishanprajapat 0:578d0f87988f 334 count++;
ee12b079 17:f410d4327247 335 } else {
krishanprajapat 0:578d0f87988f 336 wait_us(50);
krishanprajapat 0:578d0f87988f 337 miso_err_cnt++;
krishanprajapat 0:578d0f87988f 338 }
krishanprajapat 0:578d0f87988f 339 }
krishanprajapat 0:578d0f87988f 340 }
krishanprajapat 0:578d0f87988f 341 return 1;
krishanprajapat 0:578d0f87988f 342 }
ee12b079 17:f410d4327247 343 //for reseting the transmission call assert function after b5 and b1. after b1 assert_phi_on and after b5 assert_phi_tx.
krishanprajapat 0:578d0f87988f 344 //----------------------------------------------------------------------------
ee12b079 17:f410d4327247 345 unsigned char temp;
ee12b079 17:f410d4327247 346 bool reg_err;
ee12b079 17:f410d4327247 347 int reg_err_cnt;
ee12b079 17:f410d4327247 348 #define REG_ERR_THRS 5
ee12b079 17:f410d4327247 349 #define reg_check(addr1,addr2,reg_val)\
ee12b079 17:f410d4327247 350 {\
ee12b079 17:f410d4327247 351 gCS_ADF=0;\
ee12b079 17:f410d4327247 352 reg_err=false;\
ee12b079 17:f410d4327247 353 spi.write(addr1);\
ee12b079 17:f410d4327247 354 spi.write(addr2);\
ee12b079 17:f410d4327247 355 spi.write(0xFF);\
ee12b079 17:f410d4327247 356 temp = spi.write(0xFF);\
ee12b079 17:f410d4327247 357 if(temp==reg_val)\
ee12b079 17:f410d4327247 358 reg_err = false;\
ee12b079 17:f410d4327247 359 else\
ee12b079 17:f410d4327247 360 reg_err=true;\
ee12b079 17:f410d4327247 361 gCS_ADF=1;\
ee12b079 17:f410d4327247 362 }\
krishanprajapat 0:578d0f87988f 363
ee12b079 17:f410d4327247 364 #define initiate {\
ee12b079 17:f410d4327247 365 gCS_ADF=0;\
ee12b079 17:f410d4327247 366 spi.write(0xFF);\
ee12b079 17:f410d4327247 367 spi.write(0xFF);\
ee12b079 17:f410d4327247 368 gCS_ADF=1;\
ee12b079 17:f410d4327247 369 reg_err=true;\
ee12b079 17:f410d4327247 370 for(reg_err_cnt=0;reg_err_cnt<REG_ERR_THRS && reg_err;reg_err_cnt++){\
ee12b079 17:f410d4327247 371 gCS_ADF=0;\
ee12b079 17:f410d4327247 372 spi.write(0x08);\
ee12b079 17:f410d4327247 373 spi.write(0x14);\
ee12b079 17:f410d4327247 374 spi.write(TRANSMIT_LEN_1);\
ee12b079 17:f410d4327247 375 gCS_ADF=1;\
ee12b079 17:f410d4327247 376 reg_check(0x28,0x14,TRANSMIT_LEN_1);\
ee12b079 17:f410d4327247 377 }\
ee12b079 17:f410d4327247 378 if(reg_err)\
ee12b079 17:f410d4327247 379 printf("Reg_err_ignored %x \r\n",(int)temp);\
ee12b079 17:f410d4327247 380 else\
ee12b079 17:f410d4327247 381 printf("reg written successful %x \r\n",(int)temp);\
ee12b079 17:f410d4327247 382 reg_err=true;\
ee12b079 17:f410d4327247 383 for(reg_err_cnt=0;reg_err_cnt<REG_ERR_THRS && reg_err;reg_err_cnt++){\
ee12b079 17:f410d4327247 384 gCS_ADF=0;\
ee12b079 17:f410d4327247 385 spi.write(0x08);\
ee12b079 17:f410d4327247 386 spi.write(0x15);\
ee12b079 17:f410d4327247 387 spi.write(TRANSMIT_LEN_2);\
ee12b079 17:f410d4327247 388 gCS_ADF=1;\
ee12b079 17:f410d4327247 389 reg_check(0x28,0x15,TRANSMIT_LEN_2);\
ee12b079 17:f410d4327247 390 }\
ee12b079 17:f410d4327247 391 if(reg_err)\
ee12b079 17:f410d4327247 392 printf("Reg_err_ignored %x \r\n",(int)temp);\
ee12b079 17:f410d4327247 393 else\
ee12b079 17:f410d4327247 394 printf("reg written successful %x \r\n",(int)temp);\
ee12b079 17:f410d4327247 395 }\
ee12b079 17:f410d4327247 396
ee12b079 17:f410d4327247 397 bool rolling_buffer_settings_error=true;
ee12b079 17:f410d4327247 398 bool bbram_write_success=true;
ee12b079 17:f410d4327247 399 int bbram_err_cnt=0;
ee12b079 17:f410d4327247 400 int rbp_err_cnt=0;
ee12b079 17:f410d4327247 401 bool reset_flag=false;
ee12b079 17:f410d4327247 402 #define RBP_THRS 4
ee12b079 17:f410d4327247 403 bool quit_configuration=false;
ee12b079 17:f410d4327247 404 bool power_reset_flag=false;
ee12b079 17:f410d4327247 405 unsigned int power_reset_count=0;
ee12b079 17:f410d4327247 406 bool Configuration_done=false;
ee12b079 17:f410d4327247 407 #define HW_THRS 2
ee12b079 17:f410d4327247 408 //======================================OLD Write Data===================================
ee12b079 17:f410d4327247 409 /*
krishanprajapat 0:578d0f87988f 410 #define write_data {\
krishanprajapat 3:bac82a182b28 411 counter++;\
krishanprajapat 0:578d0f87988f 412 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 413 spi.write(0x0B);\
krishanprajapat 0:578d0f87988f 414 spi.write(0x36);\
krishanprajapat 0:578d0f87988f 415 spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 416 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 417 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 418 if(buffer_state){\
krishanprajapat 0:578d0f87988f 419 spi.write(0x18);\
krishanprajapat 0:578d0f87988f 420 spi.write(0x20);\
krishanprajapat 0:578d0f87988f 421 for(unsigned char i=0; i<112;i++){\
krishanprajapat 0:578d0f87988f 422 spi.write(buffer_112[i]);\
krishanprajapat 0:578d0f87988f 423 }\
krishanprajapat 0:578d0f87988f 424 }\
krishanprajapat 0:578d0f87988f 425 else{\
krishanprajapat 0:578d0f87988f 426 spi.write(0x18);\
krishanprajapat 0:578d0f87988f 427 spi.write(0x90);\
krishanprajapat 0:578d0f87988f 428 for(unsigned char i=0; i<112;i++){\
krishanprajapat 0:578d0f87988f 429 spi.write(buffer_112[i]);\
krishanprajapat 0:578d0f87988f 430 }\
krishanprajapat 0:578d0f87988f 431 }\
krishanprajapat 0:578d0f87988f 432 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 433 buffer_state = !buffer_state;\
ee12b079 17:f410d4327247 434 }*/
ee12b079 17:f410d4327247 435 void send_tm_from_SD_card()
ee12b079 17:f410d4327247 436 {
krishanprajapat 0:578d0f87988f 437 }
ee12b079 17:f410d4327247 438 //==========================================================================
ee12b079 17:f410d4327247 439
ee12b079 17:f410d4327247 440 //==================NEW_WRITE_DATA_VARs============================================
ee12b079 17:f410d4327247 441 //unsigned int counter =0;
ee12b079 17:f410d4327247 442 bool data_err= false;
ee12b079 17:f410d4327247 443 unsigned char temp_byte=0x00;
ee12b079 17:f410d4327247 444 unsigned char data_err1[112];
ee12b079 17:f410d4327247 445 unsigned char data_err_cnt=0;
ee12b079 17:f410d4327247 446 unsigned int byte_count =0;
ee12b079 17:f410d4327247 447 #define DATA_ERR_THRS 20
krishanprajapat 0:578d0f87988f 448
ee12b079 17:f410d4327247 449 bool last_buffer = 0;
ee12b079 17:f410d4327247 450 //#define write_data data_err_cnt=0;
ee12b079 17:f410d4327247 451 //==================NEW_WRITE_DATA============================================
ee12b079 17:f410d4327247 452 bool finish_write_data=0;
ee12b079 17:f410d4327247 453 #define write_data {\
ee12b079 17:f410d4327247 454 counter++;\
ee12b079 17:f410d4327247 455 gCS_ADF=0;\
ee12b079 17:f410d4327247 456 spi.write(0x0B);\
ee12b079 17:f410d4327247 457 spi.write(0x36);\
ee12b079 17:f410d4327247 458 spi.write(0xFF);\
ee12b079 17:f410d4327247 459 gCS_ADF=1;\
ee12b079 17:f410d4327247 460 data_err_cnt=0;\
ee12b079 17:f410d4327247 461 data_err=true;\
ee12b079 17:f410d4327247 462 while(data_err && (data_err_cnt<DATA_ERR_THRS)){\
ee12b079 17:f410d4327247 463 gCS_ADF=0;\
ee12b079 17:f410d4327247 464 if(buffer_state){\
ee12b079 17:f410d4327247 465 spi.write(0x18);\
ee12b079 17:f410d4327247 466 spi.write(0x20);\
ee12b079 17:f410d4327247 467 for(unsigned char i=0; i<112;i++){\
ee12b079 17:f410d4327247 468 if(bypass_adf)\
ee12b079 17:f410d4327247 469 gPC.putc(buffer_112[i]);\
ee12b079 17:f410d4327247 470 else\
ee12b079 17:f410d4327247 471 spi.write(buffer_112[i]);\
ee12b079 17:f410d4327247 472 /*gPC.printf("0x%X,",spi.write(buffer_112[i]));*/\
ee12b079 17:f410d4327247 473 }\
ee12b079 17:f410d4327247 474 }\
ee12b079 17:f410d4327247 475 else{\
ee12b079 17:f410d4327247 476 spi.write(0x18);\
ee12b079 17:f410d4327247 477 spi.write(0x90);\
ee12b079 17:f410d4327247 478 for(unsigned char i=0; i<112;i++){\
ee12b079 17:f410d4327247 479 if(bypass_adf)\
ee12b079 17:f410d4327247 480 gPC.putc(buffer_112[i]);\
ee12b079 17:f410d4327247 481 else\
ee12b079 17:f410d4327247 482 spi.write(buffer_112[i]);\
ee12b079 17:f410d4327247 483 /*gPC.printf("0x%X,",spi.write(buffer_112[i]));*/\
ee12b079 17:f410d4327247 484 }\
ee12b079 17:f410d4327247 485 }\
ee12b079 17:f410d4327247 486 gCS_ADF=1;\
ee12b079 17:f410d4327247 487 wait_us(5);\
ee12b079 17:f410d4327247 488 data_err=false;\
ee12b079 17:f410d4327247 489 gCS_ADF=0;\
ee12b079 17:f410d4327247 490 spi.write(0x38);\
ee12b079 17:f410d4327247 491 if(buffer_state){\
ee12b079 17:f410d4327247 492 spi.write(0x20);\
ee12b079 17:f410d4327247 493 }\
ee12b079 17:f410d4327247 494 else{\
ee12b079 17:f410d4327247 495 spi.write(0x90);\
ee12b079 17:f410d4327247 496 }\
ee12b079 17:f410d4327247 497 spi.write(0xFF);\
ee12b079 17:f410d4327247 498 for(unsigned char i=0; i<112;i++){\
ee12b079 17:f410d4327247 499 temp_byte=spi.write(0xFF);\
ee12b079 17:f410d4327247 500 if(buffer_112[i]!=temp_byte){\
ee12b079 17:f410d4327247 501 data_err1[i]=1;\
ee12b079 17:f410d4327247 502 data_err=true;\
ee12b079 17:f410d4327247 503 }\
ee12b079 17:f410d4327247 504 }\
ee12b079 17:f410d4327247 505 gCS_ADF=1;\
ee12b079 17:f410d4327247 506 /*SPI_mutex.unlock();*/\
ee12b079 17:f410d4327247 507 if(data_err==false){\
ee12b079 17:f410d4327247 508 buffer_state = !buffer_state;\
ee12b079 17:f410d4327247 509 }\
ee12b079 17:f410d4327247 510 data_err_cnt++;\
ee12b079 17:f410d4327247 511 if(last_buffer){\
ee12b079 17:f410d4327247 512 finish_write_data = true;\
ee12b079 17:f410d4327247 513 /*gPC.puts("adf_off\r\n");*/\
ee12b079 17:f410d4327247 514 }\
ee12b079 17:f410d4327247 515 }\
ee12b079 17:f410d4327247 516 }
ee12b079 17:f410d4327247 517 //=============NEW CHECK VAriables===================================================================
ee12b079 17:f410d4327247 518 bool data_irq_err=0;
ee12b079 17:f410d4327247 519
ee12b079 17:f410d4327247 520 //================================================================================
ee12b079 17:f410d4327247 521 void check()
ee12b079 17:f410d4327247 522 {
ee12b079 17:f410d4327247 523 check_status; //remove me
ee12b079 17:f410d4327247 524 printf("I 0x%X\r\n",(int)status);//Remove me
ee12b079 17:f410d4327247 525 if(IRQ) {
ee12b079 17:f410d4327247 526 printf("det\r\n");
ee12b079 17:f410d4327247 527 // if(1){
ee12b079 17:f410d4327247 528 if(!ADF_off) {
ee12b079 17:f410d4327247 529 // gCOM_MNG_TMTC_THREAD->signal_set(signal);
ee12b079 17:f410d4327247 530 if(stop_transmission) {
ee12b079 17:f410d4327247 531 write_data;
ee12b079 17:f410d4327247 532 ADF_off=true;
ee12b079 17:f410d4327247 533
ee12b079 17:f410d4327247 534 } else {
ee12b079 17:f410d4327247 535 write_data;
ee12b079 17:f410d4327247 536 transmitdata();
ee12b079 17:f410d4327247 537 }
ee12b079 17:f410d4327247 538 } else {
ee12b079 17:f410d4327247 539 wait_ms(20);
ee12b079 17:f410d4327247 540 // ticker.detach();
ee12b079 17:f410d4327247 541 gCS_ADF=0;
ee12b079 17:f410d4327247 542 spi.write(0xB1);
ee12b079 17:f410d4327247 543 gCS_ADF=1;
ee12b079 17:f410d4327247 544 gPC.puts("transmission done\r\n");
ee12b079 17:f410d4327247 545 // cout<<counter<<endl;
ee12b079 17:f410d4327247 546 loop_on=false;
ee12b079 17:f410d4327247 547 }
ee12b079 17:f410d4327247 548 }
ee12b079 17:f410d4327247 549 else{
ee12b079 17:f410d4327247 550 if(T.read_us()>98000){\
ee12b079 17:f410d4327247 551 data_irq_err=true;\
ee12b079 17:f410d4327247 552 CMD(CMD_PHY_ON);
ee12b079 17:f410d4327247 553 gPC.printf("Data_error_detected");
ee12b079 17:f410d4327247 554 }\
ee12b079 17:f410d4327247 555 }\
krishanprajapat 0:578d0f87988f 556 }
krishanprajapat 0:578d0f87988f 557
krishanprajapat 0:578d0f87988f 558 #define send_data {\
krishanprajapat 0:578d0f87988f 559 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 560 spi.write(0xBB);\
krishanprajapat 0:578d0f87988f 561 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 562 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 563 spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 564 spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 565 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 566 if(sent_tmfrom_SDcard){\
krishanprajapat 0:578d0f87988f 567 }\
krishanprajapat 0:578d0f87988f 568 else{\
krishanprajapat 0:578d0f87988f 569 transmitdata();\
krishanprajapat 0:578d0f87988f 570 }\
krishanprajapat 0:578d0f87988f 571 write_data;\
krishanprajapat 0:578d0f87988f 572 if(sent_tmfrom_SDcard){\
krishanprajapat 0:578d0f87988f 573 }else{\
krishanprajapat 0:578d0f87988f 574 transmitdata();\
krishanprajapat 0:578d0f87988f 575 }\
krishanprajapat 0:578d0f87988f 576 write_data;\
krishanprajapat 0:578d0f87988f 577 if(sent_tmfrom_SDcard){\
krishanprajapat 0:578d0f87988f 578 }else{\
krishanprajapat 0:578d0f87988f 579 transmitdata();\
krishanprajapat 0:578d0f87988f 580 }\
krishanprajapat 0:578d0f87988f 581 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 582 spi.write(0xB1);\
krishanprajapat 0:578d0f87988f 583 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 584 wait_us(300);\
krishanprajapat 0:578d0f87988f 585 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 586 spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 587 spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 588 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 589 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 590 spi.write(0xB5);\
krishanprajapat 0:578d0f87988f 591 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 592 wait_us(300);\
krishanprajapat 0:578d0f87988f 593 gCS_ADF=0;\
krishanprajapat 0:578d0f87988f 594 spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 595 spi.write(0xFF);\
krishanprajapat 0:578d0f87988f 596 gCS_ADF=1;\
krishanprajapat 0:578d0f87988f 597 }
ee12b079 17:f410d4327247 598 #define initial_adf_check {\
ee12b079 17:f410d4327247 599 bool Configuration_Done=false;\
ee12b079 17:f410d4327247 600 quit_configuration=false;\
ee12b079 17:f410d4327247 601 bool reset_flag1 = 0;\
ee12b079 17:f410d4327247 602 bool flag = false;\
ee12b079 17:f410d4327247 603 while((hw_reset_err_cnt<HW_THRS)&&(quit_configuration==false)){\
ee12b079 17:f410d4327247 604 while((bbram_err_cnt<2)&&(quit_configuration==false)){\
ee12b079 17:f410d4327247 605 /*assrt_phy_off;*/\
ee12b079 17:f410d4327247 606 /*Assrt_phy_off Begin*/\
ee12b079 17:f410d4327247 607 {\
ee12b079 17:f410d4327247 608 int state_err_cnt = 0;\
ee12b079 17:f410d4327247 609 CMD(CMD_PHY_OFF);\
ee12b079 17:f410d4327247 610 if(cmd_err_flag){\
ee12b079 17:f410d4327247 611 temp_return=1;\
ee12b079 17:f410d4327247 612 }\
ee12b079 17:f410d4327247 613 else{\
ee12b079 17:f410d4327247 614 for(int i = 0 ; i < 40 ;i++){\
ee12b079 17:f410d4327247 615 CMD(CMD_PHY_OFF);\
ee12b079 17:f410d4327247 616 check_status;\
ee12b079 17:f410d4327247 617 if(status == PHY_OFF){\
ee12b079 17:f410d4327247 618 temp_return = 0;\
ee12b079 17:f410d4327247 619 break;\
ee12b079 17:f410d4327247 620 }\
ee12b079 17:f410d4327247 621 else if(state_err_cnt>THRS){\
ee12b079 17:f410d4327247 622 temp_return = 1;\
ee12b079 17:f410d4327247 623 break;\
ee12b079 17:f410d4327247 624 }\
ee12b079 17:f410d4327247 625 else {\
ee12b079 17:f410d4327247 626 wait_ms(1);\
ee12b079 17:f410d4327247 627 }\
ee12b079 17:f410d4327247 628 }\
ee12b079 17:f410d4327247 629 }\
ee12b079 17:f410d4327247 630 }\
ee12b079 17:f410d4327247 631 /*Assrt_phy_off end*/\
ee12b079 17:f410d4327247 632 reset_flag1=temp_return;\
ee12b079 17:f410d4327247 633 if(!reset_flag1){\
ee12b079 17:f410d4327247 634 bbram_write;\
ee12b079 17:f410d4327247 635 while((rbp_err_cnt<RBP_THRS)&&(quit_configuration==false)){\
ee12b079 17:f410d4327247 636 bbram_check;\
ee12b079 17:f410d4327247 637 if(bbram_err==0){\
ee12b079 17:f410d4327247 638 bbram_write_success=true;\
ee12b079 17:f410d4327247 639 bbram_err_cnt=0;\
ee12b079 17:f410d4327247 640 initiate;\
ee12b079 17:f410d4327247 641 if(reg_err){\
ee12b079 17:f410d4327247 642 rbp_err_cnt++;\
ee12b079 17:f410d4327247 643 }\
ee12b079 17:f410d4327247 644 else{\
ee12b079 17:f410d4327247 645 rbp_err_cnt=0;\
ee12b079 17:f410d4327247 646 gPC.printf("NO Reg err\r\n");\
ee12b079 17:f410d4327247 647 CMD(CMD_CONFIG_DEV);\
ee12b079 17:f410d4327247 648 if(cmd_err_flag){\
ee12b079 17:f410d4327247 649 reset_flag=1;\
ee12b079 17:f410d4327247 650 gPC.printf("CMD ERR\r\n");\
ee12b079 17:f410d4327247 651 }\
ee12b079 17:f410d4327247 652 else{\
ee12b079 17:f410d4327247 653 reset_flag=0;\
ee12b079 17:f410d4327247 654 gPC.printf("NO CMD ERR CONFIG_DONE\r\n");\
ee12b079 17:f410d4327247 655 quit_configuration=true;\
ee12b079 17:f410d4327247 656 }\
ee12b079 17:f410d4327247 657 }\
ee12b079 17:f410d4327247 658 }\
ee12b079 17:f410d4327247 659 else{\
ee12b079 17:f410d4327247 660 bbram_write_success=false;\
ee12b079 17:f410d4327247 661 bbram_err_cnt++;\
ee12b079 17:f410d4327247 662 break;\
ee12b079 17:f410d4327247 663 }\
ee12b079 17:f410d4327247 664 }\
ee12b079 17:f410d4327247 665 }\
ee12b079 17:f410d4327247 666 else{\
ee12b079 17:f410d4327247 667 break;\
ee12b079 17:f410d4327247 668 }\
ee12b079 17:f410d4327247 669 }\
ee12b079 17:f410d4327247 670 if(reset_flag1){\
ee12b079 17:f410d4327247 671 hardware_reset(0);\
ee12b079 17:f410d4327247 672 hw_reset_err_cnt++;\
ee12b079 17:f410d4327247 673 gPC.puts("Resetting hardware\r\n");\
ee12b079 17:f410d4327247 674 }\
ee12b079 17:f410d4327247 675 }\
ee12b079 17:f410d4327247 676 if(hw_reset_err_cnt==HW_THRS){\
ee12b079 17:f410d4327247 677 power_reset_flag=1;\
ee12b079 17:f410d4327247 678 power_reset_count++;\
ee12b079 17:f410d4327247 679 }\
ee12b079 17:f410d4327247 680 else{\
ee12b079 17:f410d4327247 681 Configuration_Done=true;\
ee12b079 17:f410d4327247 682 gPC.printf("Configuration_Done\n");\
ee12b079 17:f410d4327247 683 }\
ee12b079 17:f410d4327247 684 }
krishanprajapat 0:578d0f87988f 685
ee12b079 17:f410d4327247 686 void adf_not_SDcard()
ee12b079 17:f410d4327247 687 {
krishanprajapat 0:578d0f87988f 688 initial_adf_check;
ee12b079 17:f410d4327247 689 gPC.puts("Config_part done\r\n");
krishanprajapat 0:578d0f87988f 690 }
krishanprajapat 0:578d0f87988f 691 int main()
krishanprajapat 0:578d0f87988f 692 {
ee12b079 17:f410d4327247 693 while(1) {
ee12b079 14:eee578d96cfe 694 reset_flags;
ee12b079 17:f410d4327247 695 gPC.puts("welcome to adf test\n");
ee12b079 17:f410d4327247 696 spi.format(8,0);
ee12b079 17:f410d4327247 697 spi.frequency(1000000);
ee12b079 17:f410d4327247 698 data_length = sizeof(Adf_data);
ee12b079 17:f410d4327247 699 // cout<<data_length<<endl;
ee12b079 17:f410d4327247 700 adf_not_SDcard();
ee12b079 18:25e7644115f2 701 send_data;
ee12b079 17:f410d4327247 702 CMD(CMD_PHY_TX);
ee12b079 17:f410d4327247 703 wait_us(2000);
ee12b079 17:f410d4327247 704 while(loop_on){
ee12b079 17:f410d4327247 705 led = !led; // toggle led
ee12b079 17:f410d4327247 706 wait_us(20);
ee12b079 17:f410d4327247 707 check();
ee12b079 17:f410d4327247 708 if(data_irq_err){
ee12b079 17:f410d4327247 709 break;\
ee12b079 17:f410d4327247 710 }
ee12b079 17:f410d4327247 711 }
ee12b079 17:f410d4327247 712 wait(0.1);
ee12b079 17:f410d4327247 713 gPC.printf("in WHILE\n");
ee12b079 17:f410d4327247 714 // wait(1);
ee12b079 17:f410d4327247 715 }
krishanprajapat 1:0b0579f5bbef 716 }