Skip to content

Code example

Konstantin Khait edited this page Jul 22, 2026 · 1 revision

index

LVS_USE_TASK(modbus);

LVS_TASK_CONTEXT_START(main)
LVS_TASK_CONTEXT_END(main)

LVS_LOOP_START(ble_partial)
   LVS_IF(isConnected())
      unsigned char data;
      LVS_IF_PASSED(150)
        PartialStatusRefill();
      LVS_ENDIF();
      LVS_START_TIMEOUT(timeout);
      LVS_BEGIN_CRITICAL_SECTION();
      while (PartialStatusGetByte(&data, true) && CM_isTxReady(CH_PARTIAL_STATUS))
      {
         LVS_IF_TIMEOUT(timeout, 1250);
           break;
         LVS_ENDIF();
         if(!CM_Send(data))
            PartialStatusGetByte(&data, false);
      }
      LVS_END_CRITICAL_SECTION();
   LVS_ENDIF();
LVS_LOOP_END(ble_partial)

LVS_LOOP_START(ble_entire)
  LVS_IF_PASSED(150)
   LVS_IF(isConnected())
      unsigned char data;      
      LVS_IF_PASSED(250)
        boiler_EntireStatusRefill();
      LVS_ENDIF();
      LVS_START_TIMEOUT(timeout);
      LVS_BEGIN_CRITICAL_SECTION();
      while(EntireStatusGetByte(&data, true) && CM_isTxReady(CH_ENTIRE_STATUS))
      {
         LVS_IF_TIMEOUT(timeout, 250);
           break;
         LVS_ENDIF();
         LVS_IF(!CM_ES_Send(data))
            EntireStatusGetByte(&data, false);
         LVS_ENDIF();
      };
      LVS_END_CRITICAL_SECTION();
   LVS_ENDIF();
 LVS_ENDIF();
LVS_LOOP_END(ble_entire)

LVS_LOOP_START(ble_tms)
  LVS_IF_PASSED(1000);
   LVS_IF(isConnected())
     CM_TMS_Send();
     CM_Type_Send(is_alta_controller);
   LVS_ENDIF();
 LVS_ENDIF();
LVS_LOOP_END(ble_tms)

LVS_TASK_INIT(main)
  // Initialize.
  ret_code_t fds_stat = fds_init();
  log_init();
  leds_init();
  timers_init();
  power_management_init();
  ble_stack_init();
  gap_params_init();
  gatt_init();
  services_init();
  advertising_init();
  conn_params_init();
  initTimestamp(true);

  // Start execution.
  advertising_start();

  LVS_TASK_RUN(modbus, NULL);
  LVS_LOOP_RUN(ble_partial, NULL);
  LVS_LOOP_RUN(ble_entire, NULL);
  LVS_LOOP_RUN(ble_tms, NULL);
LVS_TASK_START(main)
  LVS_TASK_EXIT(main)
LVS_TASK_END(main)



LVS_START_DATA(type);
int i;
LVS_END_DATA(type);

LVS_DEFINE_DATA_POOL(pool, type, 4);

int main(void)
{
    LVS_CREATE_DATA_POOL(pool);
    LVS_DATA(type)* var = LVS_ALLOCATE(pool);
    LVS_DEALLOCATE(var);

    LVS_INIT();

    LVS_TASK_RUN(main, NULL);
    LVS_RUN();
}

Clone this wiki locally