您现在的位置是:首页 >其他 >[时间同步] vscode chatGPT提供的程序打包封装成api解决方案怎么样网站首页其他

[时间同步] vscode chatGPT提供的程序打包封装成api解决方案怎么样

52-HZ 2024-06-27 12:01:03
简介[时间同步] vscode chatGPT提供的程序打包封装成api解决方案怎么样

背景

在完成gnss时间同步程序大部分需求串口配置、串口数据中找出推荐定位信息RMC解析UTC时间以及UTC时间更新系统时间等功能后,有个需求比较特别,需要客户来操作。当车辆在地库场景待时间过久后重新回到地面,一直在自走的系统时间与又定位好的UTC时间可能相差大。这时候需不需要更新呢?我也不清楚,但提供了两个方式给客户选择。
方式1:强制同步
方式2:非强制同步
选择非强制同步,如果误差过大,系统时间不会更新为UTC时间,但由于这个设计,系统时间就可能一直不能同步UTC时间,这时候,就要提供一个接口,告诉使用客户当前的系统时间与UTC误差,以及是否要强制更新。
现在要把上述接口需求做成api方式,当然我也不会。想到最近火爆而又迅速降温的chatGPT,看看它是不是一个合格的人工智能了,不是我不知道,我在考验chatGPT.(doge),如果可行,以后程序框图是不是chatGPT老兄帮忙作图呀,嘿嘿。废话不多说开干。

VScode插件下的chatGPT

VScode插件里面有琳琅满目的chatGPT工具,我所使用的是CHAT-GPT中文版,这个用多了还要收费,吐血。作为一个chatGPT新玩家,它不用注册,有一定的免费字数,而且不常用 确实还可以的。
在这里插入图片描述
做完我的提问,chatGPT马上就出了答案,表现不错。
刚想问一下句如何使用这些动/静态库,结果就要收费了,吐血,贫穷的我肯定不会认这个账,自己想办法。
修改一下.c .h

hello.c

#include "hello.h"
void hello_world() {
    printf("Hello, world!
");
}

hello.h

#include <stdio.h>
void hello_world();

再来一个调用的main.c

#include "hello.h"
int main(){
    hello_world();
    return 0;
}
  1. 再用gcc生成动态库libhello.so
gcc --shared -o libhello.so hello.c
  1. 再将mian.c连接动态库libhello.so
gcc mian.c -L. -lhello -o main
  1. 再将动态库libhello.so文件放在/lib或者/usr/lib下,那么默认就能找到。如果放在其他目录下,需要编辑/etc/ld.so.conf文件,加入库文件所在目录的路径,然后ldconfig下。该命令会重建/etc/ld.so.cache文件即可。
sudo cp -r libhello.sp /usr/lib
ldconfig
  1. 再检查一下动态链接库连接
ldd mian
hz@titan:~/c_program/vscode/encapsulation_api$ ldd main 
        linux-vdso.so.1 (0x00007ffea87ab000)
        libhello.so => /lib/libhello.so (0x00007f3bc611e000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3bc5f2c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3bc614d000)

  1. 执行测试一下
hz@titan:~/c_program/vscode/encapsulation_api$ ls
hello.o  libhello.a  libhello.so  main  mian.c
hz@titan:~/c_program/vscode/encapsulation_api$ ./main 
Hello, world!

bigoo,可行。哎,靠ai不如靠自己。

参考连接

使用动态库参考链接

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。