예제 #1
0
파일: main.c 프로젝트: mildrock/sw_pos
static void disp_time()
{
  int ret = 0;
  SYSTIME gSysTime;
  uint8 cSendBuf[7] = {0x00, 0xA4, 0x00, 0x00, 0x00, 0x3F, 0x00};
  uint8 cRcvBuf[64], cRcvLen;
  char disp_msg[30];
  while(1)
  {
    if(SP_KEY_CLEAR == sp_get_key())
      return;
    if(ResetCard_A())
    {
      ret = CpuCard_Apdu(0x0f, 7, cSendBuf, &cRcvLen, cRcvBuf);
      sp_disp_error("CpuCard_Apdu,ret=%04x", ret);
      Beep(3);
      ret = Deselect_A();
      sp_disp_error("Deselect_A,ret=%04x", ret);
      Reset_Reader_TimeOut();
    }
    GetTime(&gSysTime);
    sprintf(disp_msg, "normal=%02d:%02d:%02d", gSysTime.chHour, gSysTime.chMinute, gSysTime.chSecond);
    SP_PRINT(1, 0, disp_msg);
    sp_sleep(1000);
  }
}
예제 #2
0
파일: shutdown.c 프로젝트: chenbk85/nanomsg
int main ()
{
    int rc;
    int s;
    struct sp_thread thread;

    /*  Close the socket with no associated endpoints. */
    rc = sp_init ();
    errno_assert (rc == 0);
    s = sp_socket (AF_SP, SP_PAIR);
    errno_assert (s != -1);
    rc = sp_close (s);
    errno_assert (rc == 0);
    rc = sp_term ();
    errno_assert (rc == 0);

    /*  Test sp_term() before sp_close(). */
    rc = sp_init ();
    errno_assert (rc == 0);
    sp_thread_init (&thread, worker, NULL);
    sp_sleep (10);
    rc = sp_term ();
    errno_assert (rc == 0);
    sp_thread_term (&thread);

    return 0;
}
예제 #3
0
static void do_update_sum_amt(sp_context* ctx, sp_transdtl* record)
{
  uint8 ret = 0;
  int diff_days = 0;
  sp_get_time(ctx);
  diff_days = sp_calc_diff_days(ctx->today, ctx->syspara.today_date);
  if(diff_days > 1)
  {
    ctx->syspara.yesterday_total_cnt = 0;
    ctx->syspara.yesterday_total_amt = 0;
    ctx->syspara.today_total_cnt = 0;
    ctx->syspara.today_total_amt = 0;
    memcpy(ctx->syspara.today_date, ctx->today, 4);
  }
  else if(diff_days == 1)
  {
    ctx->syspara.yesterday_total_cnt = ctx->syspara.today_total_cnt;
    ctx->syspara.yesterday_total_amt = ctx->syspara.today_total_amt;
    ctx->syspara.today_total_cnt = 0;
    ctx->syspara.today_total_amt = 0;
    memcpy(ctx->syspara.today_date, ctx->today, 4);
  }
  else if(diff_days < 0)
  {
    sp_disp_error("致命错误,时间倒退,diffdays=%d",diff_days);
		ret = sp_select_card_app(ctx, &ctx->card);
  }
  ctx->syspara.today_total_amt += record->amount;
  ++ctx->syspara.today_total_cnt;
  ret = sp_write_syspara(ctx);
  if(ret)
  {
    //致命错误联系管理员
    sp_disp_error("致命错误,请联系管理员,错误码%04x", ret);
    sp_sleep(9999999);
  }
}
예제 #4
0
파일: main.c 프로젝트: mildrock/sw_pos
static void test_get_time(sp_context* p_ctx)
{
  SYSTIME tm;
  int32 key = 0;
  int ret = 0;
  char disp_msg[30];
  //  char phyid_hex[33] = {0};
  // uint8 cSendBuf[7] = {0x00, 0xA4, 0x00, 0x00, 0x00, 0x3F, 0x00};
  //  uint8 cSendBuf[7] = {0x00, 0xA4, 0x00, 0x00, 0x00, 0xDF, 0x03};
  // uint8 cRcvBuf[64], cRcvLen;
  sp_disp_error("in test_get_time");
  GetTime(&tm);
  while(1)
  {
    key = sp_get_key();
    if(SP_KEY_CLEAR == key)
      return;
    else if(SP_KEY_FUNC == key)
    {
      //  ret  = do_request_card(p_ctx, &p_ctx->card, phyid_hex);
      ret = sp_request_card(p_ctx->card.cardphyid);
      sp_disp_error("寻卡,ret=%d,%04x", ret, ret);
    }
    else if(SP_KEY_CONFIRM == key)
    {
      ret = sp_read_card(p_ctx, &p_ctx->card, SP_READ_FILE10 | SP_READ_FILE12 | SP_READ_FILE15 | SP_READ_FILE16);
      sp_disp_error("读卡,ret=%04x", ret);
    }
    else if(SP_KEY_0 == key)
    {
      ret  = sp_cpu_reset_card();
      sp_disp_error("key0--reset card,ret=%04x", ret);
    }
    else if(SP_KEY_1 == key)
    {
      ret =  sp_cpu_select_df03();//CpuCard_Apdu(0x0f, 7, cSendBuf, &cRcvLen, cRcvBuf);
      sp_disp_error("key2--sel df03,ret=%04x", ret);
      /*
        ret = ResetCard_A();
        if(ret)
        {
          ret = CpuCard_Apdu(0x0f, 7, cSendBuf, &cRcvLen, cRcvBuf);
          sp_disp_error("CpuCard_Apdu,ret=%04x", ret);
          Beep(3);
          ret = Deselect_A();
          sp_disp_error("Deselect_A,ret=%04x", ret);
          //Reset_Reader_TimeOut();
        }
        else
        {
          sp_disp_error("重设卡 error,ret=%04x", ret);
          ret = CpuCard_Apdu(0x0f, 7, cSendBuf, &cRcvLen, cRcvBuf);
          sp_disp_error("选df03,ret=%04x", ret);
          ret = Deselect_A();
          sp_disp_error( "取消选择,ret=%04x", ret);
          //Reset_Reader_TimeOut();
        }
        */
    }
    else if(SP_KEY_2 == key)
    {
      ret  = sp_cpu_deselect_card();
      // Reset_Reader_TimeOut();
      sp_disp_error("key1--deselect,ret=%04x", ret);
    }
    else if(SP_KEY_3 == key)
    {
      ret = sp_cpu_reset_time(p_ctx);
      sp_disp_error("reset_time,ret=%04x", ret);
    }

    GetTime(&tm);
    memset(disp_msg, 0, 30);
    sprintf(disp_msg, "%02d:%02d:%02d", tm.chHour, tm.chMinute, tm.chSecond);
    SP_PRINT(2, 0, disp_msg);

    sp_sleep(1000);
  }
}