मेरे पास एक ब्लूटूथ डिवाइस है जिसे मैं लिनक्स पर गैट्टोल का उपयोग करके नियंत्रित कर सकता हूं। मैं अपना खुद का सी प्रोग्राम विकसित करना चाहता हूं जो इसे कमांड भेज सकता है।लिनक्स x86 पर सी का उपयोग कर ब्लूटूथ ली डिवाइस को कैसे प्रोग्राम करें?
मैंने अतीत में ब्लूटूथ प्रोग्रामिंग किया है और यह नेटवर्क प्रोग्रामिंग के समान अपेक्षाकृत सीधा है, लेकिन इस बार, यह ब्लूटूथ कम ऊर्जा डिवाइस है और सिद्धांतों का पालन करते हुए here परिणामस्वरूप मेजबान संदेश नीचे है जब मैं स्पष्ट रूप से कनेक्ट कर सकता हूं/gatttool का उपयोग कर इसे से डिस्कनेक्ट करें।
मैं इस प्रोग्राम को कैसे बना सकता हूं? मुझे पता है कि मुझे ब्लूज़ लाइब्रेरी का उपयोग करना चाहिए, लेकिन मुझे यकीन नहीं है कि कम ऊर्जा उपकरणों के साथ कहां से शुरू किया जाए।
int main(int argc, char **argv)
{
struct sockaddr_rc addr = { 0 };
int s, status;
char dest[18] = "B4:99:4C:5C:EE:49";
char buf[2048];
pthread_t rthread;
setbuf(stdout, NULL);
// allocate a socket
s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
// set the connection parameters (who to connect to)
addr.rc_family = AF_BLUETOOTH;
addr.rc_channel = (uint8_t) 1;
str2ba(dest, &addr.rc_bdaddr);
// connect to server
status = connect(s, (struct sockaddr *)&addr, sizeof(addr));
if(status < 0){
perror("Error connecting to host\n");
exit(1);
}
while(fgets(buf, sizeof(buf), stdin) != NULL){
status = send(s, buf, sizeof(buf), 0);
if(status < 0){
printf("Error sending.\n");
exit(1);
}
}
close(s);
return;
आपका कोड अब और उपलब्ध नहीं है। क्या आप इसे पोस्ट कर सकते हैं? – gregoiregentil
यह मेरा कोड नहीं है। हालांकि, मैंने इसके आधार पर एक और अधिक महत्वपूर्ण और पूरी तरह से कार्यात्मक कार्यक्रम लिखा था। आप इसे ब्लूज़ का उपयोग करके बीएलई गैजेट से बात करने के उदाहरण के रूप में उपयोग कर सकते हैं: http://github.com/dlenski/ttblue –
बहुत बहुत धन्यवाद! – gregoiregentil