我正在尝试在Arduino上创建自己的库,同时还使用其他库。但是我的头文件的第12行出现了这个错误:
在')'令牌之前需要不合格ID
主文件:
#include "firealarm.h"
void setup() {
firealarm.begin;
}
void loop() {
firealarm.gas_values();
}
头文件:
#include <MQ2.h>
#ifndef firealarm
#define firealarm
#if ARDUINO >= 100
#include "Arduino.h"
#endif
class firealarm {
public:
firealarm(); //this is where it says the error occurs
void begin (int baudRate = 9600);
gas_values()
private:
MQ2 mq2(A0);
int lpg, co, smoke;
};
#endif
Cpp文件:
#include "firealarm.h"
firealarm::firealarm() :
{
}
void firealarm::begin(int baudrate)
{
Serial.begin(baudrate);
Serial.println("Firealarm libary created successfully")
mq2.begin;
}
void firealarm::gas_values()
{
float *values = mq2.read(true);
lpg = mq2.readLPG();
co = mq2.readCO();
smoke = mq2.readSmoke();
}
我还计划在其中包含其他库。但是我无法让它只与它一起工作。
答案 0 :(得分:0)
在其他问题中,您<html>
<head>
<title></title>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
</head>
<body>
<script type="text/javascript">
var hostweburl;
// Load the required SharePoint libraries.
// Get the URI decoded URLs.
hostweburl = "http://sp:12001";
var scriptbase = hostweburl + "/_layouts/15/";
// Load the js files and continue to
// the execOperation function.
//$.getScript(scriptbase + "init.js");
//$.getScript(scriptbase + "MicrosoftAjax.js");
//$.getScript(scriptbase + "sp.core.js");
//$.getScript(scriptbase + "sp.runtime.js");
//$.getScript(scriptbase + "sp.js");
$(document).ready(function () {
//ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js");
$.getScript(scriptbase + 'init.js', function () {
$.getScript(scriptbase + 'MicrosoftAjax.js', function () {
$.getScript(scriptbase + 'sp.core.js', function () {
$.getScript(scriptbase + 'SP.Runtime.js',
function () {
$.getScript(scriptbase + 'SP.js', function () {
retrieveListItems("http://sp:12001")
})
});
});
});
});
});
// Continue your program flow here.
function retrieveListItems(siteUrl) {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('MyList2');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml(
'<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' +
'<Value Type=\'Number\'>1</Value></Geq></Where></Query>' +
'<RowLimit>10</RowLimit></View>'
);
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)
);
}
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nID: ' + oListItem.get_id() +
'\nTitle: ' + oListItem.get_item('Title');
//'\nBody: ' + oListItem.get_item('Body');
}
alert(listItemInfo.toString());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() +
'\n' + args.get_stackTrace());
}
</script>
</body>
</html>
位于#define firealarm
顶部附近,这意味着,一旦firealarm.h
一词在文件中的后面出现,它就会被完全删除。因此对于编译器,您的文件如下所示:
firealarm
这不是有效的C ++,因此编译器会引发错误。文件稍后会出现更多错误,例如函数class {
public:
();
// ..... more code
的声明,该函数没有返回类型,并且在行末没有分号。
将包含保护(gas_values
和#ifdef
行重命名为您不使用的单词,例如#define
,或替换它们(以及__firealarm_h_included
行) )和一个#endif