Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
Diff: Command.c
- Revision:
- 147:1aed74f19a8f
- Parent:
- 145:f023b2f18b82
- Child:
- 148:7ce8c1fd00f7
--- a/Command.c Thu Apr 28 13:54:29 2016 +0000 +++ b/Command.c Fri Apr 29 07:27:50 2016 +0000 @@ -13,15 +13,48 @@ unsigned int TempParam=1; unsigned int CountParam=0; - + int ttemp; unsigned int pDestT ; GyroParam *Flash; + ///////////////flah and boot/////////// +void GoBoot(void) + { + /* Prepare Sectors to be flashed */ + NVIC_DisableIRQ(TIMER1_IRQn); + NVIC_DisableIRQ(TIMER2_IRQn); + NVIC_DisableIRQ(TIMER3_IRQn); + NVIC_DisableIRQ(EINT3_IRQn); + SystemInitDef(); + vIAP_ReinvokeISP(); + } + +void WriteFlash(void) + { + + NVIC_DisableIRQ(TIMER1_IRQn); + NVIC_DisableIRQ(TIMER2_IRQn); + NVIC_DisableIRQ(TIMER3_IRQn); + NVIC_DisableIRQ(EINT3_IRQn); + + SystemInitDef(); + WriteCon("\r\n Start Prepare Sectors"); + if(u32IAP_PrepareSectors(18, 21) == IAP_STA_CMD_SUCCESS) + { + WriteCon("\r\nPrepare Sectors OK"); + WriteCon("\r\n Start Erase"); + u32IAP_EraseSectors(IMG_START_SECTOR, IMG_END_SECTOR); + WriteCon("\r\n AND Erase"); + } + else WriteCon("\r\nPrepare Sectors ERROR"); + SystemInit1(); + Gyro.FlashMod = 0; + } - void ReadFlash ( void) { + Gyro.FlashMod = 0; WriteCon("\r\n Pirivet Flash"); pDestT= (unsigned int) (0x10000); Flash = (GyroParam*) pDestT; @@ -31,7 +64,7 @@ } - + ///////////////////////////////////////// unsigned int memdump( char *base, int n ) { @@ -793,25 +826,24 @@ void Read_CMD(void) { - - - Gyro.RsErrLine = (Gyro.RsErrLine)& 0xffff;//для сброса ошибки - - CountBuFFIn=ReadChekCon1(BuffTemp); // чтение данных из консоли - - if(CountBuFFIn==1) { // если есть первый байт - if (BuffTemp[0] != SOC_In) { - ReadCon1(BuffTemp); - Gyro.RsErrLine += 0x100;//WriteCon("\n\r ...Error.... "); - BuffTemp[99]=Gyro.RsErrLine; - - } - } else if(CountBuFFIn==2) { //если второй ,fqn - if (BuffTemp[1] != Gyro.My_Addres) { + Gyro.RsErrLine = (Gyro.RsErrLine)& 0xffff;//для сброса ошибки + CountBuFFIn=ReadChekCon1(BuffTemp); // чтение данных из консоли + if(CountBuFFIn==1) { // если есть первый байт + if (BuffTemp[0] != SOC_In) { + ReadCon1(BuffTemp); + Gyro.RsErrLine += 0x100;//WriteCon("\n\r ...Error.... "); + BuffTemp[99]=Gyro.RsErrLine; + } + } + else if(CountBuFFIn==2) //если второй ,fqn + { + if (BuffTemp[1] != Gyro.My_Addres) { ReadCon1(BuffTemp); Gyro.RsErrLine += 0x1;//WriteCon("\n\r ...Error_ADDRES.... "); - } - } else if(CountBuFFIn==3) { // если ьоетий байт + } + } + else if(CountBuFFIn==3) // если ьоетий байт + { Gyro.CMD_In=BuffTemp[2]; N=Getlengf(); } @@ -821,19 +853,18 @@ } else if((CountBuFFIn==5)&&(N==7)) { - Param1=BuffTemp[3]; Param2=BuffTemp[4]; } else if((CountBuFFIn==6)&&(N==8)) - { + { Param1=BuffTemp[3]; Param2=BuffTemp[4]; Param3=BuffTemp[5]; } else if((CountBuFFIn==8)&&(N==10)) - { + { Param1=BuffTemp[4]; Param2=BuffTemp[5]; Param3=BuffTemp[6]; @@ -842,10 +873,9 @@ else if(CountBuFFIn > (N-1)) { - ReadCon1(BuffTemp); - switch(Gyro.CMD_In) { - Rate_Flag=0; - + ReadCon1(BuffTemp); + switch(Gyro.CMD_In) { + Rate_Flag=0; case 0x99: Gyro.ModeOut=0; CMD_Maintenance(); @@ -857,57 +887,195 @@ else if (TempParam==Delta_EXT) CMD_Delta_Ext(); else if (TempParam==PDelta_500) { Gyro.ModeOut=3; Gyro.Delta500_Event=0; WriteCon("Delta500"); } else if (TempParam==PDelta_EXT) { Gyro.ModeOut=4; Gyro.DeltaEXT_Event=0; WriteCon("deltaEXT"); } - break; + break; case 0xD8: CMD_M_Control_D8(); - break; + break; case 0xE9://чтение параметров CMD_M_Param_R(); - break; + break; case 0xE8://запись параметра CMD_M_Param_W(); - break; + break; case 0xD9: CMD_M_Control_D9(); - break; + break; case 0x0A: CMD_M_Stymul(); - break; + break; case 0xDD: - TempParam=(BuffTemp[3]) & 0x9f; - if (TempParam == Rate1) { CMD_Rate(); WriteCon("Rate11");} - else if (TempParam == Rate2) { CMD_Rate2(); WriteCon("Rate21");} - else if (TempParam == PRate1) { Gyro.ModeOut=1; Gyro.Rate1_Event=0; WriteCon("Rate12");} - else if (TempParam == PRate2) { Gyro.ModeOut=2; Gyro.Rate2_Event=0; WriteCon("Rate22");} - break; + TempParam=(BuffTemp[3]) & 0x9f; + if (TempParam == Rate1) { CMD_Rate(); WriteCon("Rate11");} + else if (TempParam == Rate2) { CMD_Rate2(); WriteCon("Rate21");} + else if (TempParam == PRate1) { Gyro.ModeOut=1; Gyro.Rate1_Event=0; WriteCon("Rate12");} + else if (TempParam == PRate2) { Gyro.ModeOut=2; Gyro.Rate2_Event=0; WriteCon("Rate22");} + break; - case 0xE4: + case 0xE4: CMD_M_vib(); - break; + break; case 0xE6: Gph_W(); - break; - - - Gyro.RsErrLine = 0; - - + break; + Gyro.RsErrLine = 0; + } } - - } -// else if(CountBuFFIn > 40 ) -// { -// ReadCon1(BuffTemp); -// } +} +void TechLog(void) +{ + if (ReadCon (Time)) { +///////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////// +//////////////////////Выбор FlashMod/////////////////////////// +//////////////////////////////////////////////////////////////// + if (Time[0] == 'B') {Gyro.FlashMod=1;} + if (Time[0] == 'W') {Gyro.FlashMod=2;} + if (Time[0] == 'R') {Gyro.FlashMod=3;} +/////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////// + if (Time[0] == 'H') { // если ввели буквц h то выдать подсказку. сделанно через принф ОЧЕНЬ плохо в работе не использовать + sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции + WriteCon(Time); + sprintf(Time,"--%d.%3.d.%2.d.",Time1Hz,Time1K,Time100K); //Временно выдачпа временни из трех чисел + WriteCon(Time); + } + if (Time[0] == 'D') { + Gyro.Discharg = StartDischarg; + } + if (Time[0] == 'L') { + Gyro.BackLight = StartBackLight; + } + if (Time[0] == 'F') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + sprintf((Time)," Gyro.Termo = <%07d> Spi.ADC1 = <%07d> Spi.ADC1_Accum = <%07d>",Spi.ADC4,Spi.ADC4,Spi.ADC4_Accum ); + WriteCon(Time); + } + if (Time[0] == 'q') { // внешняя защелка + Gyro.EXT_Latch=1; + } + if (Time[0] == '1') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_1Point[i]); + WriteCon(Time); + } + if (Time[0] == '2') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_8Point[i]); + WriteCon(Time); + } + if (Time[0] == '3') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_16Point[i]); + WriteCon(Time); + } + if (Time[0] == '4') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_16PointD[i]); + WriteCon(Time); + } + if (Time[0] == 'z'){ // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ ) + { + ttemp=(Buff_16PointD[i]); + if (ttemp < 0) WriteCon("1"); else WriteCon("0"); + } + } + if (Time[0] == '5'){ // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_32Point[i]); + WriteCon(Time); + } + if (Time[0] == '6') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_Restored_sin[i]); + WriteCon(Time); + } + if (Time[0] == '7') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 10)," <%07d> ",Buff_AMP64P[i]-(Buff_AMP[i])); + WriteCon(Time); + } + if (Time[0] == '9') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Gyro.Frq); + WriteCon(Time); + } + if (Time[0] == 'p') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Cur_Amp); + WriteCon(Time); + } + if (Time[0] == 'm') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + sprintf((Time),"PLC_Delta <%07d> ", Gyro.PLC_Delta); WriteCon(Time); + sprintf((Time),"PLC_DeltaADD <%07d> ", Gyro.PLC_DeltaADD); WriteCon(Time); + } + if (Time[0] == 'V') { // выдача технологическая + Spi.DAC_B += 200; + } + if (Time[0] == 'v') { // выдача технологическая + Spi.DAC_B -= 200; + } + //////////////////////////////////////////////////////////////////////////////// + /*Запись лога настройки частоты*/ + if (Time[0] == 'y') Gyro.LogHZ=1; //включит передачу + if (Time[0] == 'u') Gyro.StrayHZ_flag = 1; //LPC_TIM1->MR0+1000 вносим помеху + if (Time[0] == 'i') Gyro.StrayHZ_flag = 0; //LPC_TIM1->MR0 убираем помеху + if (Time[0] == 'o') Gyro.LogHZ=0; //Отключить передачу + //////////////////////////////////////////////////////////////////////////////////// + /*Запись лога настройки периметра*/ + if (Time[0] == 'g') Gyro.LogPLC=1; //включит передачу + if (Time[0] == 'h') Gyro.StrayPLC_flag = 1; //LPC_TIM1->MR0+1000 вносим помеху + if (Time[0] == 'j') Gyro.StrayPLC_flag = 0; + if (Time[0] == 'b') Gyro.StrayPLC_flag = 3; //LPC_TIM1->MR0-1000 вносим помеху + if (Time[0] == 'n') Gyro.StrayPLC_flag = 2; //LPC_TIM1->MR0 убираем помеху + if (Time[0] == 'k') Gyro.LogPLC=0; //Отключить передачу + ////////////////////////////////////////////////////////////////////////////////////// + if (Time[0] == '8') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ ) + { + ttemp=(Buff_AMP64P[i]-(Buff_AMP[i])); + if (ttemp < 0) WriteCon("1"); else WriteCon("0"); + } + } + if (Time[0] == 'b') { // выдача технологическая + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ ) + { + ttemp=(Buff_Restored_sin[i]); + if (ttemp < 0) WriteCon("1"); else WriteCon("0"); + } + } + if (Gyro.PLC_Error2Mode) { // выдача технологическая + sprintf(Time,"\r\nPLC_Error2Mode"); + WriteCon(Time); + } + } } -