C/C++程序怎么发预警通知 工业网关、嵌入式采集程序、桌面监控工具很多用C/C++编写,设备异常发生时需要主动发短信或打电话。互亿无线预警通知API是HTTPS POST,C/C++生态里常用libcurl发起请求,标准HTTP调用无需引…
C/C++程序怎么发预警通知
工业网关、嵌入式采集程序、桌面监控工具很多用C/C++编写,设备异常发生时需要主动发短信或打电话。互亿无线预警通知API是HTTPS POST,C/C++生态里常用libcurl发起请求,标准HTTP调用无需引入第三方依赖。本文给出实现方案。
接口与参数
| 通道 | 地址 |
|---|---|
| 短信 | https://api.ihuyi.com/sms/Submit.json |
| 语音 | https://api.ihuyi.com/voice/vm |
| 闪信 | https://api.ihuyi.com/flash/Submit.json |
必填account、password、mobile、content,成功返回code=2与smsid。可选templateid与time参数。
libcurl示例
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *stream) {
fwrite(ptr, size, nmemb, stdout);
return size * nmemb;
}
int main(void) {
CURL *curl = curl_easy_init();
if (!curl) return 1;
char *data = "account=API_ID&password=API_KEY"
"&mobile=13800138000"
"&content=%E3%80%90%E8%AE%BE%E5%A4%87%E5%91%8A%E8%AD%A6%E3%80%91%E6%B8%A9%E5%BA%A6%E8%B6%85%E9%99%90%E3%80%82";
curl_easy_setopt(curl, CURLOPT_URL, "https://api.ihuyi.com/sms/Submit.json");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_cb);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) fprintf(stderr, "err: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
return 0;
}
编译与依赖
- Linux下安装libcurl-dev,编译加 -lcurl
- HTTPS需要系统带CA证书,否则SSL校验失败
- 中文content需URL编码,可用curl_easy_escape处理
在采集程序里集成
- 采集线程读到传感器越限,连续两个周期才触发告警
- 调用上面的sendAlert函数,按级别选短信或语音地址
- 解析返回JSON,code=2记录smsid到本地日志
嵌入式设备资源有限,建议把libcurl调用封装成独立线程,不阻塞主采集循环。5秒首发失败自动换通道,避免网关到短信平台的网络抖动漏掉传感器告警。互亿无线提供11种语言代码示例,24小时可发送,按成功计费。C/C++团队若想把设备告警从"写日志"升级为"主动通知",注册免费试用,拿测试条数先跑通一条传感器告警。




