Tôi đã tạo một chức năng đám mây bằng cách sử dụng SDK Javascript của Parse.com và tôi đang gọi các chức năng đó từ Arduino. Sau đây là mã cho hello
chức năng:
Parse.Cloud.define("hello", function(request, response) {
response.success("This is hello function");
}); //hello function Block
Tôi gọi hàm này từ phía Arduino bằng mã sau:
void setup() {
Bridge.begin();
Serial.begin(9600);
while (!Serial);
Parse.begin("***zE0uUjQkMa7nj5D5BALvzegzfyVNSG22BD***", "***Ssggp5JgMFmSHfloewW5oixlM5ibt9LBSE***");
//commented my keys with * here only
// In this example, we associate this device with a pre-generated installation
Parse.getInstallationId();
Parse.startPushService();
}
void loop() {
Serial.println("Start loop");
demoBasic("meeting", 0);
}
void demoBasic(String functionname, int light) {
char fnname[11];
functionname.toCharArray(fnname, 11);
Serial.print("In ");
Serial.print(functionname);
Serial.println(" Function");
ParseCloudFunction cloudFunction;
cloudFunction.setFunctionName(fnname);
cloudFunction.add("light_sensor", light);
cloudFunction.add("value", "Arduino Hello");//parameters
ParseResponse response = cloudFunction.send();
Serial.println(response.getJSONBody());
}
Vấn đề là tôi chỉ nhận được phản hồi 8 lần. Sau đó toàn bộ dòng chương trình bị chặn. Vấn đề là gì?
Không chắc vấn đề của bạn là gì, nhưng tôi sẽ thử một vòng lặp "trì hoãn" sau cuộc gọi đến demoBasic. Tôi sẽ bắt đầu với 100 ms. Có thể mã của bạn thực thi "quá nhanh" thì hàm js bị chặn.
—
fabrosell
@fabrosell Tôi cũng đã thử làm điều đó nhưng vẫn có vấn đề. Bạn có thể đề xuất bất kỳ điều gì nhẹ nhàng có thể giải quyết vấn đề.
—
Abhijeet Kulkarni
Nếu bạn có bất kỳ mã làm việc nào liên tục có thể đẩy dữ liệu lên Parse.com, bạn có thể chia sẻ điều đó không?
—
Abhijeet Kulkarni
Tôi xin lỗi, tôi không có bất kỳ. Dù bằng cách nào, đó là một hành vi rất kỳ lạ nếu chức năng được gọi chỉ 8 lần và không còn nữa ...
—
fabrosell
Tại thời điểm nào trong mã, chương trình "bị chặn"?
—
Kingsley