将配置文件发送到 fiware cepheus cep GE 时出错
Error on sending configuration file to fiware cepheus cep GE
我在使用 Cepheus CEP Fiware 组件时遇到了问题。我准备了设置传入和输出数据结构的 config.json 文件以及 Esper SQL 语句,该语句应处理传入数据并使用配置中的预设结构生成输出数据。我想用传感器运动数据向 Cepheus 发送更新,告诉它是否有人进入房间(发送 1)或有人离开房间(发送 -1),然后将运动输入值与房间中先前的人数相加以查看如果房间里还有人。这是我到目前为止制作的 json 配置文件。
{
"host":"http://localhost:8080",
"in":[
{
"id":"Lab.*",
"type":"Lab",
"isPattern": true,
"attributes":[
{ "name":"motion", "type":"integer","metadata": [
{ "name":"unit", "type":"string" }
] }
,
{ "name":"controller", "type":"string"}],
"providers":[
"http://localhost:8081"
]
}
],
"out":[
{
"id":"ControllerX",
"type":"Controller",
"attributes":[
{ "name":"number", "type":"integer"
}
]
,
"brokers":[
{
"url":"http://147.27.60.58:1026"
}
]
}
],
"statements":[ "INSERT INTO Controller SELECT controller as id , motion prev(count(*)+number) as number From Lab.win:keepall() INNER JOIN Controller.win:keepall() ON controller = id
"
]
如文件所示,该语句在从上一个输出事件中获取先前的人数后生成输出事件,并将其与运动输入(1 或 -1)相加以获得新输出事件的人数但是当我发送 config.json 文件时,我得到这个错误:
{"code":"400","reasonPhrase":"Failed to apply new configuration","details":"Error starting statement: Failed to validate select-clause expression 'motion+number': Implicit conversion from datatype 'Object' to numeric is not allowed [insert into Controller select controller as id, motion+number as number from Lab.win:keepall() inner outer join Controller.std:lastevent() on controller = id]"}
这个错误是否意味着求和值被识别为对象而不是整数?如果是这样,如何解决?
您是否尝试使用 Cepheus CEP 支持的属性类型,在这种情况下 int
?
这些是支持的属性类型:string
、int
、long
、float
、double
、boolean
、date
和 geo:point
.
我在使用 Cepheus CEP Fiware 组件时遇到了问题。我准备了设置传入和输出数据结构的 config.json 文件以及 Esper SQL 语句,该语句应处理传入数据并使用配置中的预设结构生成输出数据。我想用传感器运动数据向 Cepheus 发送更新,告诉它是否有人进入房间(发送 1)或有人离开房间(发送 -1),然后将运动输入值与房间中先前的人数相加以查看如果房间里还有人。这是我到目前为止制作的 json 配置文件。
{
"host":"http://localhost:8080",
"in":[
{
"id":"Lab.*",
"type":"Lab",
"isPattern": true,
"attributes":[
{ "name":"motion", "type":"integer","metadata": [
{ "name":"unit", "type":"string" }
] }
,
{ "name":"controller", "type":"string"}],
"providers":[
"http://localhost:8081"
]
}
],
"out":[
{
"id":"ControllerX",
"type":"Controller",
"attributes":[
{ "name":"number", "type":"integer"
}
]
,
"brokers":[
{
"url":"http://147.27.60.58:1026"
}
]
}
],
"statements":[ "INSERT INTO Controller SELECT controller as id , motion prev(count(*)+number) as number From Lab.win:keepall() INNER JOIN Controller.win:keepall() ON controller = id
"
]
如文件所示,该语句在从上一个输出事件中获取先前的人数后生成输出事件,并将其与运动输入(1 或 -1)相加以获得新输出事件的人数但是当我发送 config.json 文件时,我得到这个错误:
{"code":"400","reasonPhrase":"Failed to apply new configuration","details":"Error starting statement: Failed to validate select-clause expression 'motion+number': Implicit conversion from datatype 'Object' to numeric is not allowed [insert into Controller select controller as id, motion+number as number from Lab.win:keepall() inner outer join Controller.std:lastevent() on controller = id]"}
这个错误是否意味着求和值被识别为对象而不是整数?如果是这样,如何解决?
您是否尝试使用 Cepheus CEP 支持的属性类型,在这种情况下 int
?
这些是支持的属性类型:string
、int
、long
、float
、double
、boolean
、date
和 geo:point
.