case GATT_REQUEST_NOT_SUPPORTED:
case GATT_WRITE_NOT_PERMITTED:
return true;
+ default:
+ return false;
}
- return false;
}
void CALEClientSetScanInterval(int32_t intervalTime, int32_t workingCount)
(void)object;
bool isAttached = false;
- JNIEnv* env;
+ JNIEnv* env = NULL;
jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
if (JNI_OK != res)
{
CAResult_t CALEClientStartUnicastServer(const char* address)
{
+#ifndef TB_LOG
+ (void)address;
+#endif
OIC_LOG_V(DEBUG, TAG, "it is not needed in this platform (%s)", address);
return CA_NOT_SUPPORTED;
if (!g_deviceList)
{
+ OIC_LOG(ERROR, TAG, "g_deviceList is not available");
return CA_STATUS_FAILED;
}
return CA_STATUS_FAILED;
}
}
+ else
+ {
+ OIC_LOG(DEBUG, TAG, "there is a target device in the scanned devices");
+ }
return CA_STATUS_OK;
}
(*env)->ReleaseStringUTFChars(env, jni_setAddress, setAddress);
(*env)->DeleteLocalRef(env, jni_setAddress);
- // stop scan while sending
- CALEClientStopScanWithInterval();
-
if (g_sendBuffer)
{
(*env)->DeleteGlobalRef(env, g_sendBuffer);
(*g_jvm)->DetachCurrentThread(g_jvm);
}
- // start LE Scan again
- ret = CALEClientStartScanWithInterval();
- if (CA_STATUS_OK != ret)
- {
- OIC_LOG(ERROR, TAG, "CALEClientStartScanWithInterval has failed");
- ca_mutex_unlock(g_threadSendMutex);
- return ret;
- }
-
ca_mutex_unlock(g_threadSendMutex);
OIC_LOG(INFO, TAG, "unicast - send logic has finished");
if (CALEClientIsValidState(address, CA_LE_SEND_STATE,
// error label.
error_exit:
-
- // start LE Scan again
- ret = CALEClientStartScanWithInterval();
- if (CA_STATUS_OK != ret)
- {
- OIC_LOG(ERROR, TAG, "CALEClientStartScanWithInterval has failed");
- ca_mutex_unlock(g_threadSendMutex);
- if (isAttached)
- {
- (*g_jvm)->DetachCurrentThread(g_jvm);
- }
- return ret;
- }
-
if (isAttached)
{
(*g_jvm)->DetachCurrentThread(g_jvm);
goto error_exit;
}
- // stop scan while sending
- CALEClientStopScanWithInterval();
-
uint32_t length = u_arraylist_length(g_deviceList);
g_targetCnt = length;
OIC_LOG(DEBUG, TAG, "the data was sent");
}
ca_mutex_unlock(g_threadMutex);
-
- // start LE Scan again
- res = CALEClientStartScanWithInterval();
- if (CA_STATUS_OK != res)
- {
- OIC_LOG(ERROR, TAG, "CALEClientStartScanWithInterval has failed");
- ca_mutex_unlock(g_threadSendMutex);
- return res;
- }
-
ca_mutex_unlock(g_threadSendMutex);
OIC_LOG(DEBUG, TAG, "OUT - CALEClientSendMulticastMessageImpl");
return CA_STATUS_OK;
error_exit:
- res = CALEClientStartScanWithInterval();
- if (CA_STATUS_OK != res)
- {
- OIC_LOG(ERROR, TAG, "CALEClientStartScanWithInterval has failed");
- ca_mutex_unlock(g_threadSendMutex);
- return res;
- }
-
ca_mutex_unlock(g_threadSendMutex);
- OIC_LOG(DEBUG, TAG, "OUT - CALEClientSendMulticastMessageImpl");
+ OIC_LOG(ERROR, TAG, "OUT - CALEClientSendMulticastMessageImpl");
return CA_SEND_FAILED;
}
g_isSignalSetFlag = false;
ca_mutex_unlock(g_threadWriteCharacteristicMutex);
+ CALEClientUpdateSendCnt(env);
+
OIC_LOG(INFO, TAG, "writeCharacteristic success!!");
return CA_STATUS_OK;
}
if (!g_deviceList)
{
OIC_LOG(ERROR, TAG, "gdevice_list is null");
- CALEClientStopScanWithInterval();
-
ca_mutex_unlock(g_deviceListMutex);
return CA_STATUS_FAILED;
}
g_threadWriteCharacteristicCond = ca_cond_new();
}
+ if (!g_threadScanIntervalCond)
+ {
+ g_threadScanIntervalCond = ca_cond_new();
+ }
+
CAResult_t ret = CALEClientStartScanWithInterval();
if (CA_STATUS_OK != ret)
{
}
}
-static jstring CALEClientGetAddressFromGatt(JNIEnv *env, jobject gatt)
-{
- OIC_LOG(DEBUG, TAG, "IN - CAManagerGetAddressFromGatt");
-
- VERIFY_NON_NULL_RET(env, TAG, "env is null", NULL);
- VERIFY_NON_NULL_RET(gatt, TAG, "gatt is null", NULL);
-
- jmethodID jni_mid_getDevice = CAGetJNIMethodID(env, CLASSPATH_BT_GATT,
- "getDevice", METHODID_BT_DEVICE);
- if (!jni_mid_getDevice)
- {
- OIC_LOG(ERROR, TAG, "jni_mid_getDevice is null");
- return NULL;
- }
-
- jobject jni_obj_device = (*env)->CallObjectMethod(env, gatt, jni_mid_getDevice);
- if (!jni_obj_device)
- {
- OIC_LOG(ERROR, TAG, "jni_obj_device is null");
- return NULL;
- }
-
- jstring jni_address = CALEGetAddressFromBTDevice(env, jni_obj_device);
- if (!jni_address)
- {
- OIC_LOG(ERROR, TAG, "jni_address is null");
- return NULL;
- }
-
- OIC_LOG(DEBUG, TAG, "OUT - CAManagerGetAddressFromGatt");
- return jni_address;
-}
-
/*
* Class: org_iotivity_ca_jar_caleinterface
* Method: CALeGattConnectionStateChangeCallback
g_isSignalSetFlag = true;
ca_cond_signal(g_threadWriteCharacteristicCond);
ca_mutex_unlock(g_threadWriteCharacteristicMutex);
-
- CALEClientUpdateSendCnt(env);
}
(*env)->ReleaseStringUTFChars(env, jni_address, address);