Example #1
0
/*FUNCTION*----------------------------------------------------------------
*
* Function Name    : hmi_tss_slider_callback
* Returned Value   : void
* Comments         :
*   This function is slider callback.
*
*END*--------------------------------------------------------------------*/
void hmi_tss_slider_callback(TSS_CONTROL_ID u8ControlId)
{    /* get provider struct from TSS private data */
    HMI_PROVIDER_STRUCT_PTR     provider_struct = (HMI_PROVIDER_STRUCT_PTR)TSS_GetControlPrivateData(u8ControlId.ControlNumber);
    /* get context data */
    HMI_TSS_CONTEXT_STRUCT_PTR  context_struct = (HMI_TSS_CONTEXT_STRUCT_PTR) provider_struct->CONTEXT_PTR;

    /* check if client is attached to provider */
    if (context_struct == NULL || context_struct->CLIENT_HANDLE == NULL)
    {
        return;
    }

    if ((*(TSS_CSSlider *)TSS_GetControlStruct(context_struct->CONTROL_NUMBER)).DynamicStatus.Movement)
    {
        context_struct->CLIENT_HANDLE->ON_CHANGE(context_struct->CLIENT_HANDLE, context_struct->TSS_TABLE[0].UID, HMI_VALUE_MOVEMENT);
    }
}
Example #2
0
/*FUNCTION*----------------------------------------------------------------
*
* Function Name    : hmi_tss_keypad_callback
* Returned Value   : void
* Comments         :
*   This function is callback for TSS buttons.
*
*END*--------------------------------------------------------------------*/
void hmi_tss_keypad_callback(TSS_CONTROL_ID u8ControlId)
{    /* get provider structure from TSS private data */
    HMI_PROVIDER_STRUCT_PTR     provider_struct = (HMI_PROVIDER_STRUCT_PTR)TSS_GetControlPrivateData(u8ControlId.ControlNumber);
    /* get context data */
    HMI_TSS_CONTEXT_STRUCT_PTR  context_struct = (HMI_TSS_CONTEXT_STRUCT_PTR)provider_struct->CONTEXT_PTR;
    /* get keypad structure pointer */
    TSS_CSKeypad               *keypad_structure = ((TSS_CSKeypad *)TSS_GetControlStruct(context_struct->CONTROL_NUMBER));
    uint8_t                      u8Event;    /* 8 bits local variable used to store the event information */
    uint8_t                      flag;       /* push / release flag */

    /* check if client is attached to provider */
    if (context_struct == NULL || context_struct->CLIENT_HANDLE == NULL)
    {
        return;
    }
    /* While unread events are in the buffer */
    while (!TSS_KEYPAD_BUFFER_EMPTY( *keypad_structure))
    {
        /* Read the buffer and store the event in the u8Event variable */
        TSS_KEYPAD_BUFFER_READ(u8Event, * keypad_structure);

        if (u8Event & TSS_KEYPAD_BUFFER_RELEASE_FLAG)
        {
            u8Event = (uint8_t)(u8Event & TSS_KEYPAD_BUFFER_KEY_MASK);    /* Get key index */
            flag = HMI_VALUE_RELEASE;
        }
        else
        {
            flag = HMI_VALUE_PUSH;
        }
        /* check if key index is registered in provider */
        if (u8Event >= context_struct->TSS_COUNT)
        {
            return;
        }
        context_struct->CLIENT_HANDLE->ON_CHANGE(context_struct->CLIENT_HANDLE, context_struct->TSS_TABLE[u8Event].UID, flag);
    }
}
TSSControl* TSSControlFactory::createTSSControl(uint8_t control_number)
{
  void *control = TSS_GetControlPrivateData(control_number); /* retrieve this pointer as void* */

  if (control != NULL)
  {
    return static_cast<TSSControl*>NULL;  /* control was already created */
  }

  switch (control_number)
  {
    #if (TSS_N_CONTROLS > 0)
      case 0:
        return new TSS_C0_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 1)
      case 1:
        return new TSS_C1_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 2)
      case 2:
        return new TSS_C2_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 3)
      case 3:
        return new TSS_C3_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 4)
      case 4:
        return new TSS_C4_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 5)
      case 5:
        return new TSS_C5_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 6)
      case 6:
        return new TSS_C6_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 7)
      case 7:
        return new TSS_C7_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 8)
      case 8:
        return new TSS_C8_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 9)
      case 9:
        return new TSS_C9_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 10)
      case 10:
        return new TSS_C10_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 11)
      case 11:
        return new TSS_C11_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 12)
      case 12:
        return new TSS_C12_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 13)
      case 13:
        return new TSS_C13_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 14)
      case 14:
        return new TSS_C14_CLASS(control_number);
    #endif
    #if (TSS_N_CONTROLS > 15)
      case 15:
        return new TSS_C15_CLASS(control_number);
    #endif
  }

  return static_cast<TSSControl*>NULL;
}
TSSControl* TSSControlFactory::getTSSControl(uint8_t control_number)
{
  return static_cast<TSSControl*>(TSS_GetControlPrivateData(control_number));
}