Example #1
0
static void FieldProcessing(FuncObjC*& inputXYFO)
{
  char baseID[idLen];
  CopyString(baseID, inputXYFO->GetID(), 80);

  int idNum = 0;
  char incID[idLen];
  IncrementID(baseID, incID, idNum);

  inputXYFO->SetID(incID);

  if (processDups)
  {
    IncrementID(baseID, incID, idNum);
    MenuObjC* xyObj = AddNewObject("DPO_XYRemoveDuplicate", incID);
    DFO_XYRemoveDuplicate* currXY = static_cast<DFO_XYRemoveDuplicate*>(xyObj->objFunction);

    currXY->xyInputObjRef = FuncObjRef(*inputXYFO);

    inputXYFO = currXY;
  }

  if (processReduce)
  {
    IncrementID(baseID, incID, idNum);
    MenuObjC* xyObj = AddNewObject("DPO_XYReduction", incID);
    DFO_XYReduction* currXY = static_cast<DFO_XYReduction*>(xyObj->objFunction);

    currXY->xyInputObjRef = FuncObjRef(*inputXYFO);

    inputXYFO = currXY;
  }

  if (processST)
  {
    IncrementID(baseID, incID, idNum);
    MenuObjC* xyObj = AddNewObject("DPO_XYDualScaleTransform", incID);
    DFO_XYDualScaleTransform* currXY = static_cast<DFO_XYDualScaleTransform*>(xyObj->objFunction);

    currXY->xyInputObjRef = FuncObjRef(*inputXYFO);

    inputXYFO = currXY;
  }

  inputXYFO->SetID(baseID);
}
Example #2
0
/*******************************************************************************
* Function Name: ReceiveData
********************************************************************************
*
* Summary:
*   receive data from start in struct "inData"
* Return:
*   NETWORK_CONNECT or NETWORK_DISCONNECT
*
*******************************************************************************/
uint32_t  ReceiveData(void)
{   
    if(inData.readStatus == NO_READ && outData.writeStatus == WRITE_OK)
    {
        uint32_t result = 0;
        int i;
        uint8_t byte;
        struct Resp recvData;
          
        while((UART_XB_SpiUartGetRxBufferSize() > 0) && ((byte=UART_XB_UartGetChar()) != 0))
        { 
            result = UnpackData(&recvData, (uint8_t)(byte & 0xFF));
            CyDelay(2);
            
            
            if(recvData.EndPacket == 1)
            {
                inData.IDpacket = recvData.Seq;
                
                /*id packet ok*/
                if(outData.IDpacket == inData.IDpacket)
                {
                    inData.readStatus = READ_OK;
                    outData.writeStatus = NO_WRITE;
                    
                    /*connect network*/
                    networkStatus = NETWORK_CONNECT;
                    noConnect = 0;
                    
                    /*write data*/
                    inData.newSkier = (recvData.Data3 & 0xFF00) >> 8;
                    inData.unixStartTime = recvData.Data1;
                    inData.startMsTime = recvData.Data2;
                    inData.reboot = (recvData.Data3 & 0x00FF);
                    
                    /*if new skier on track*/
                    if(inData.newSkier == NEW_SKIER_IN_TARCK )
                    {
                        WriteStartTime(inData.unixStartTime, inData.startMsTime);
                        BLE_sendOneSkierTimeStart(inData.unixStartTime, inData.startMsTime,GetIDskierStarted(),SkierOnWay(),MAX_SKIERS_ON_WAY);
                        IncrementID();
                    }
                    
                    /*next packet*/
                    outData.IDpacket++;
                    CyDelay(50);
                }  
                /* if prev packet late*/
                else if(outData.IDpacket == (inData.IDpacket + 1))