void WEIGHT_Init(void)

void WEIGHT_Init(void)
{
 LONG_VAL  lvTemp;
 UN_BYTE_FLOATLONG	ubfTemp;

 Weight[0].Value = 0;  Weight[0].EventState[0] = WEIGHT_NO_INIT;  Weight[0].EventState[1] = WEIGHT_NO_INIT;  API_RecordRead( FileReg, MREG_WEIGHT );  WEIGHT_NumberActive = FileReg[0].idata[ 0 ];  if(WEIGHT_NumberActive == 0 || WEIGHT_NumberActive > 3) WEIGHT_NumberActive = 1;  API_RecordRead( FileReg, MREG_WEIGHT_OFFSET );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  ubfTemp.UL = lvTemp.Val;  Weight[0].TempConst = ubfTemp.F;  API_RecordRead( FileReg, MREG_WEIGHT_RANGE );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[0].RangeMin[0] = lvTemp.Val;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[0].RangeMax[0] = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT_RANGE2 );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[0].RangeMin[1] = lvTemp.Val;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[0].RangeMax[1] = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT_VALUE_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  ubfTemp.UL = lvTemp.Val;  Weight[0].Calib = ubfTemp.F;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[0].CalibTemp = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT_FULL_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ]; #if !defined(OCWB_GW)  SPI_AD77xx_WriteFullScale(SPI_AD77xx_PORT_1, lvTemp.Val); #endif  API_RecordRead( FileReg, MREG_WEIGHT_ZERO_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];
#if !defined(OCWB_GW)  SPI_AD77xx_WriteOffset(SPI_AD77xx_PORT_1, lvTemp.Val); #else  Weight[0].CalibZero = lvTemp.Val; #endif  API_RecordRead( FileReg, MREG_WEIGHT_MAXIMUM );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[0].Max = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT_TARE );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[0].Tare = lvTemp.Val; #if defined(WEIGHT2_ENABLE)  Weight[1].Value = 0;  Weight[1].EventState[0] = WEIGHT_NO_INIT;  Weight[1].EventState[1] = WEIGHT_NO_INIT;  API_RecordRead( FileReg, MREG_WEIGHT2_OFFSET );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  ubfTemp.UL = lvTemp.Val;  Weight[1].TempConst = ubfTemp.F;  API_RecordRead( FileReg, MREG_WEIGHT2_RANGE );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[1].RangeMin[0] = lvTemp.Val;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[1].RangeMax[0] = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT2_RANGE2 );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[1].RangeMin[1] = lvTemp.Val;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[1].RangeMax[1] = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT2_VALUE_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  ubfTemp.UL = lvTemp.Val;  Weight[1].Calib = ubfTemp.F;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[1].CalibTemp = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT2_FULL_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ]; #if !defined(OCWB_GW)  SPI_AD77xx_WriteFullScale(SPI_AD77xx_PORT_2, lvTemp.Val); #endif  API_RecordRead( FileReg, MREG_WEIGHT2_ZERO_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ]; #if !defined(OCWB_GW)  SPI_AD77xx_WriteOffset(SPI_AD77xx_PORT_2, lvTemp.Val); #else  Weight[1].CalibZero = lvTemp.Val; #endif  API_RecordRead( FileReg, MREG_WEIGHT2_MAXIMUM );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[1].Max = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT2_TARE );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[1].Tare = lvTemp.Val; #endif #if defined(WEIGHT3_ENABLE)  Weight[2].Value = 0;  Weight[2].EventState[0] = WEIGHT_NO_INIT;  Weight[2].EventState[1] = WEIGHT_NO_INIT;  API_RecordRead( FileReg, MREG_WEIGHT3_OFFSET );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  ubfTemp.UL = lvTemp.Val;  Weight[2].TempConst = ubfTemp.F;  API_RecordRead( FileReg, MREG_WEIGHT3_RANGE );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[2].RangeMin[0] = lvTemp.Val;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[2].RangeMax[0] = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT3_RANGE2 );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[2].RangeMin[1] = lvTemp.Val;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[2].RangeMax[1] = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT3_VALUE_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  ubfTemp.UL = lvTemp.Val;  Weight[2].Calib = ubfTemp.F;  lvTemp.byte.MB = FileReg[0].idata[ 4 ];  lvTemp.byte.UB = FileReg[0].idata[ 5 ];  lvTemp.byte.HB = FileReg[0].idata[ 6 ];  lvTemp.byte.LB = FileReg[0].idata[ 7 ];  Weight[2].CalibTemp = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT3_FULL_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ]; #if !defined(OCWB_GW)  SPI_AD77xx_WriteFullScale(SPI_AD77xx_PORT_3, lvTemp.Val); #else  Weight[2].CalibZero = lvTemp.Val; #endif  API_RecordRead( FileReg, MREG_WEIGHT3_ZERO_CALIB );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ]; #if !defined(OCWB_GW)  SPI_AD77xx_WriteOffset(SPI_AD77xx_PORT_3, lvTemp.Val); #endif  API_RecordRead( FileReg, MREG_WEIGHT3_MAXIMUM );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[2].Max = lvTemp.Val;  API_RecordRead( FileReg, MREG_WEIGHT3_TARE );  lvTemp.byte.MB = FileReg[0].idata[ 0 ];  lvTemp.byte.UB = FileReg[0].idata[ 1 ];  lvTemp.byte.HB = FileReg[0].idata[ 2 ];  lvTemp.byte.LB = FileReg[0].idata[ 3 ];  Weight[2].Tare = lvTemp.Val; #endif // SPI_AD77xx_SetMode(SPI_AD77xx_PORT_1, SINGLE_CONVERSION);  AppFlag.bits.tensometer_ok = FALSE;  WEIGHT_Flag = FALSE;     if(!WEIGHT_ReadWeight(SPI_AD77xx_PORT_1, &lvTemp.Val)) Weight[0].Value = -1000; #if defined(WEIGHT2_ENABLE)     if(!WEIGHT_ReadWeight(SPI_AD77xx_PORT_2, &lvTemp.Val)) Weight[1].Value = -1000; #endif #if defined(WEIGHT3_ENABLE)     if(!WEIGHT_ReadWeight(SPI_AD77xx_PORT_3, &lvTemp.Val)) Weight[2].Value = -1000; #endif  WEIGHT_Flag = TRUE;  OsSocket.TickTask[RTX_TENSOMETER] = TickGet(); }