void Task1(void *Id) { uint8_t n = 0 ; (void) Id; SysTick_Config(120000); // CPU_IntEn(); n = KeyScan(); DspRst(); // CheckLight(); // OSTimeDly(250); ConfigBCK(); InitStart(); GR_DBG_PRINTF("Variable System length %d ",sizeof(System) ); TIMER_Configuration(); TIMER1_Configuration(); System.Usb.OldUsbStatu = USB_STATUS ; switch(n) { case 1 : TESTA(); break ; // case 2 : TESTB(); break ; // case 3 : TESTC(); break ; // case 4 : TESTD(); break ; case 3 : TESTE(); break ; default :break ; } for(;;) { KeyDispose(); OSTimeDly(5); } }
JNIEXPORT jobjectArray JNICALL Java_com_iq007_bridge_doubledummysolver_DoubleDummySolver_00024BridgeWorker_CalcDDtablePBN (JNIEnv * env, jobject obj1, jstring jDealPBNString){ jobjectArray result; jclass objectClass = env->FindClass("java/lang/Object"); result = env->NewObjectArray(5, objectClass, 0); const char *dealPBNString = env->GetStringUTFChars(jDealPBNString, JNI_FALSE); ddTableDealPBN tableDealPBN; strlcpy(tableDealPBN.cards, dealPBNString, sizeof(tableDealPBN.cards)); LOGI("tableDealPBN: %s", tableDealPBN.cards); ddTableResults tableResults; InitStart(0,0); int returnResult = CalcDDtablePBN(tableDealPBN, &tableResults); LOGI("CalcDDtablePBN returned: %d", returnResult); for(int i=0;i<5;i++){ jintArray strainsArray1; strainsArray1 = env->NewIntArray(4); env->SetIntArrayRegion(strainsArray1, 0, 4, tableResults.resTable[i]); env->SetObjectArrayElement(result, i, strainsArray1); for (int j=0;j<4;j++){ LOGI("Result[%d][%d]: %d", i,j, tableResults.resTable[i][j]); } } env->ReleaseStringUTFChars(jDealPBNString, dealPBNString); return result; }
CString CMarkovWordGenerator::Generate (void) // Generate // // Generates a random word { int i; if (!InitStart()) return NULL_STR; // Allocate a result buffer char szBuffer[1024]; int iLength = 0; // Start by picking a random fragment DWORD dwRoll = (DWORD)mathRandom(1, m_dwStartCount); for (i = 0; i < m_Start.GetCount() && dwRoll > m_Start[i]->dwCount; i++) dwRoll -= m_Start[i]->dwCount; SFragHead *pFrag = m_Start[i]; szBuffer[0] = pFrag->sFrag[0]; szBuffer[1] = pFrag->sFrag[1]; szBuffer[2] = pFrag->sFrag[2]; char *pPosFrag = szBuffer; char *pPos = szBuffer + 3; char *pPosEnd = szBuffer + sizeof(szBuffer); while (true) { // Bounds check if (pPos + 1 == pPosEnd) { *pPos = '\0'; return CString(szBuffer); } // Pick a random character for this fragment dwRoll = (DWORD)mathRandom(1, pFrag->dwCount); SChainChar *pChain = GetChain(pFrag); while ((*(DWORD *)pChain) != 0) { if (dwRoll <= pChain->dwCount) break; dwRoll -= pChain->dwCount; pChain++; } // Are we done? if (pChain->chChar == '\0') { *pPos = '\0'; return CString(szBuffer); } // Add the character *pPos++ = pChain->chChar; pPosFrag++; // Look for the new fragment int iPos; if (Find(pPosFrag, &iPos)) pFrag = m_Table[iPos]; else { *pPos = '\0'; return CString(szBuffer); } } return NULL_STR; }
JNIEXPORT jobjectArray JNICALL Java_com_iq007_bridge_doubledummysolver_DoubleDummySolver_00024BridgeWorker_CalcParPBN (JNIEnv * env, jobject obj1, jstring jDealPBNString, jint jVulnerability) { jobjectArray result; jclass objectClass = env->FindClass("java/lang/Object"); result = env->NewObjectArray(4, objectClass, 0); int vulnerability = (int) jVulnerability; const char *dealPBNString = env->GetStringUTFChars(jDealPBNString, JNI_FALSE); ddTableDealPBN tableDealPBN; strlcpy(tableDealPBN.cards, dealPBNString, sizeof(tableDealPBN.cards)); LOGI("tableDealPBN: %s", tableDealPBN.cards); ddTableResults tableResults; parResults tableParResults; InitStart(0,0); int returnResultCalcDDtable = CalcDDtablePBN(tableDealPBN, &tableResults); LOGI("CalcDDtablePBN returned: %d", returnResultCalcDDtable); int returnResultCalcPar = Par(&tableResults, &tableParResults, vulnerability); LOGI("Par returned: %d", returnResultCalcPar); jchar jcharBuffer1[2][16];// = new jcharArray[2][16]; for(int i=0;i<2;i++){ for (int j = 0; j<16; j++) { jcharBuffer1[i][j] = (jchar)tableParResults.parScore[i][j]; } } jchar jcharBuffer2[2][128];// = new jcharArray[128]; for(int i=0;i<2;i++){ for (int j = 0; j<128; j++) { jcharBuffer2[i][j] = (jchar)tableParResults.parContractsString[i][j]; } } for(int i=0;i<2;i++){ jcharArray strainsArray1; strainsArray1 = env->NewCharArray(16); env->SetCharArrayRegion(strainsArray1, 0, 16, jcharBuffer1[i]); env->SetObjectArrayElement(result, i, strainsArray1); for (int j=0;j<16;j++){ LOGI("Result[%d][%d]: %d", i,j, tableParResults.parScore[i]); } } for(int i=2;i<4;i++){ jcharArray strainsArray2; strainsArray2 = env->NewCharArray(128); env->SetCharArrayRegion(strainsArray2, 0, 128, jcharBuffer2[i-2]); env->SetObjectArrayElement(result, i, strainsArray2); for (int j=0;j<128;j++){ LOGI("ResultPar[%d][%d]: %d", i-2,j, tableParResults.parContractsString[i-2][j]); } } env->ReleaseStringUTFChars(jDealPBNString, dealPBNString); return result; }