关于websocket前端的使用尝试——持续更新

第一次使用WebSocket,出现很多问题:特此记录。 举例: 先声明一个websocket,创建websocket的对象: let webSocket = new WebSocket(“ws;//127.0.0.1:8800”)。 可以在浏览器上查看websocket的状态: 1、如果为0,代表正在连接。connecting 2、如果为1,代表连接成功。open 3、如果为2,代表连接正在关闭。closing 4、如果为3,代表连接已经关闭,或者打开失败。closed 使用webSocket
分类: 其他 发布时间: 01-22 23:49 阅读次数: 0

C语言--一维数组

一维数组: int a[10]; 一维数组名a是一个指针常量,而不是指针变量。你不能修改常量的值 在几乎所有使用数组名的表达式中,数组名的值是一个指针常量,也就是数组第一个元素的地址。它的类型取决于数组元素的类型;如果他们是int类型,那么数组名的类型就是“指向int的常量指针“;如果他们是其他类型,那么数组名的类型就是”指向其他类型的常量指针“。 只有在两种场合下,数组名并不用指针常亮来表示--就是当数组名作为sizeof操作符或者单目操作符&的操作时。 sizeof返回整个数组的长度,而不
分类: 其他 发布时间: 01-22 23:48 阅读次数: 0

C语言--__attribute__((noreturn))

1、 #include <stdlib.h> #include <stdio.h> void Fun_Exit(void) { exit(1); } int Fun_Test(int n) { if (n > 0) { Fun_Exit(); printf("Hello World\r\n"); } else return 0; } int main(int argc, char *argv[]) {
分类: 其他 发布时间: 01-22 23:48 阅读次数: 0

STM32--assert_param断言宏

1、基本概念 宏定义 在stm32f10x_conf.h头文件中,有如下定义: /* #define USE_FULL_ASSERT 1 */ #ifdef USE_FULL_ASSERT #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__)) void assert_failed(uint8_t* file, uint32_t line); #els
分类: 其他 发布时间: 01-22 23:47 阅读次数: 0

C语言--#err和#warning的使用

1、#warning用于自定义一条编译警告信息。 #include <stdio.h> int main() { #ifndef COMMAND #warning Compilation will be stoped ... #endif printf("%s\n", "COMMAND"); return 0; } /**程序输出结果 COMMAND */ 编译器警告信息如下图,但没有停止编译 2、#error用于自定义一条编译错误信息。 #
分类: 其他 发布时间: 01-22 23:47 阅读次数: 0

C语言--NULL和NUL

1、NULL 标准定义了NULL指针,它作为一个特殊的指针变量,表示不指向任何东西。要使一个指针变量为NULL,你可以给它赋一个零值。为了测试一个指针变量是否是NULL,你可以将它与零值进行比较。 对指针进行解引用操作可以获得它所指向的值。但从定义上来看,NULL指针并为指向任何东西,因此对一个NULL指针进行解引用操作时非法的。在对指针进行解引用操作之前,你首先必须确保它并非NULL指针。 如果所有的指针变量(而不仅仅是位于静态内存中的指针变量)能够被自动初始化为NULL,那实在是一件幸运的
分类: 其他 发布时间: 01-22 23:47 阅读次数: 0

STM32--在RAM中调试代码

听说STM32的FLASH只能擦写10000次,一个开发板就算1天擦写10次 10000/10/365=2.73972602739726,那岂不是一个开发板用两年之后芯片就废了,好方啊,有没有(其实如果你能做到10000次擦写,估计这个开发板你已经玩透了,把芯片刷过flash寿命,菜鸟也变成老鸟了)。如果你实在担心擦写10000次,那就可以试试在RAM中调试代码。 一、STM32的自举配置: 主flash:即从内部flash启动,keil下载程序默认就是下载到这里的,10000次擦写指的也是这
分类: 其他 发布时间: 01-22 23:47 阅读次数: 0

数字滤波--递推平均滤波

#define RM_BUF_LEN 10 /*递推数组的长度*/ uint16_t RM_Filter_Buf[RM_BUF_LEN]; /*保存数据的递推数组*/ uint16_t ADCx_Recursive_Mean_Filter(uint16_t get_adc) { uint16_t sum = 0; uint8_t i; for(i = 0; i < RM_BUF_LEN - 1; i++)
分类: 其他 发布时间: 01-22 23:46 阅读次数: 0

C语言--结构struct

1、结构声明: struct tag{member-list}variable-list; 其中:tag、member-list和variable-list都是可选的,但是所有可选部分不能全部省略--他们至少要出现两个(这个规则的一个例外是:结构标签的不完整声明) 2、结构的自引用: 在一个结构内部包含一个类型为该结构本身的成员是否合法呢? struct SELF_REF1{ int a; struct SELF_REF1 b; char c; }; 这种类型的自引用是非法的,因为成员b是另一
分类: 其他 发布时间: 01-22 23:46 阅读次数: 0

数据结构--动态内存分配实现数组

#include<stdio.h> #include<malloc.h> #include<stdlib.h> #include<stdbool.h> typedef struct Arr{ int *pBase; /*存储的是数组第一个元素的地址*/ int len; /*数组的长度*/ int cnt; /*当前数组有效元素的个数*/ int increasement; /*增量*/ }Arr_Type;
分类: 其他 发布时间: 01-22 23:46 阅读次数: 0

C语言--跨函数使用内存

#include<stdio.h> #include<malloc.h> typedef struct { int pi; int pd; int id; }PID; PID *Create_Fun(void); void Fun_Show(PID *ps); int main(int argc, char *argv[]) { PID *ps; ps = Create_Fun(); Fun_Show(ps); free(ps);
分类: 其他 发布时间: 01-22 23:46 阅读次数: 0

数据结构--内存分配中的栈(stack)与堆(heap)

C语言内存分配中的堆和栈 一、在C语言中,内存分配方式有如下三种形式: 1、从静态存储区域分配: 它是由编译器自动分配和释放的,即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,直到整个程序运行结束时才被释放,如全局变量与static类型的变量。 2、在栈上分配: 它同样也是由编译器自动分配和释放的,即在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元将被自动释放。 3、从堆上分配: 也被称为动态内存分配,它是由程序员手动完成申请和释放的。
分类: 其他 发布时间: 01-22 23:45 阅读次数: 0

Anaconda更新所有包,出现 post-link script failed for package defaults::ipykernel-4.8.2-py36_0错误的解决方法

这个错误是由于是在Windows 10(1709)上安装Anaconda 5.0.1 x64 的关系,执行conda update --all 会产生错误,因此,必须要先行升级ipkernal 版本才行,升级完毕后再重新执行一次conda update -- all 就可以顺利更新所有包。 解决方式,在Anaconda Prompt上先运行: conda update ipykernel 再运行: conda update --all
分类: 其他 发布时间: 01-22 23:45 阅读次数: 0

windows Git使用revert操作

刚刚开始接触git命令行,就被git revert操作难倒了,因为在使用 git revert HEAD命令后,总是出现以下问题: ,后来发现这种问题是正确的,只需要按住ESC键,同时按两下z,就可以安全退出这种形式,之后在git push一下就可以完成对远程版本库的revert操作!
分类: 其他 发布时间: 01-22 23:45 阅读次数: 0

Git版本库分支冲突如何修改

小白写git的lab作业,两个分支冲突不知道怎么解决,谷歌了下,最后终于解决!做下笔记如下。 首先,你需要下载一个mergetool,我下载的是kdiff3,这里是下载网址https://sourceforge.net/projects/kdiff3/ 然后,点击安装,直接按照默认设置安装即可。 然后,你需要在git里面用命令行对git进行配置,如下所示: 然后,就可以使用 git mergetool 进行分支合并了,运行这个命令行正确的结果是: 然后,这个时候就会跳出kdiff3的页面,分为
分类: 其他 发布时间: 01-22 23:44 阅读次数: 0

Java用IO读取文件内容出现错误

使用java读取文件信息,可以用以下方法,如果是读取包内的一个文件夹内的文件, 可以使用例如"maps/map.txt"的方式进行读取文件。 但是在读取过程中有时会出现FileNotFoundException的错误,很有可能是因为读取的文件的编码格式不是 UTF-8引起错误的,可以使用这种方法进行修改: 选择文件→另存为 编码选择UTF-8,这样就不会出错了。 try { File file = new File("filename"); FileReader fileRe
分类: 其他 发布时间: 01-22 23:44 阅读次数: 0

Java读取文件信息读取的第一个字符是空字符

Java用IO读取文件中的字符串,第一个字符是空字符,如果要截取字符串的第一个字符,得到的 是空的,所以必须先对第一行字符串进行处理,去掉第一个字符,然后再进行相应操作。
分类: 其他 发布时间: 01-22 23:44 阅读次数: 0

C++出现‘atoi'was not declared in this scope 应该如何解决?

在学习C++,结果在命令行使用g++ n.cpp 编译的时候出现了这个错误,换成stoi(information)也还是同样的错误, 谷歌了半天,终于找到问题原因和解决方法: 问题原因:MinGW不是最新的,并不能识别C++的版本,原文是这样说的: MinGW isn't maintained by the same group as GCC itself, so it's not always up to date 解决方法:使用 g++ -std=c++11 n.cpp进行编译。
分类: 其他 发布时间: 01-22 23:44 阅读次数: 0

微信小程序setData数组异步问题使用回调解决

最近在写微信小程序,使用腾讯的地图api搜索附近的医院位置信息,并在微信小程序的地图上用图标显示出来。 但是,我search得到的数组,在setData()的时候竟然set不了,再打印出来还是空的,最后,通过回调函数得到了解决。 我写了一个函数来获得markers的数组,然后,再将数组写到data中 代码截图和说明如下: 函数调用的时候: 在函数定义的时候: 我这里是为了避免代码冗余,把得到数组的函数写在了外部的一个js文件中,如果不想这样做,只要去掉require(...)和module(.
分类: 其他 发布时间: 01-22 23:43 阅读次数: 0

如何在微信小程序中调用腾讯地图api

微信小程序的地图api是非常有限的,如果要搜索地图上的位置,比如附近的医院、学校等,就需要使用地图api,使用腾讯地图api的过程如下: 一、开发者申请腾讯地图 进入官网http://lbs.qq.com/key.html 申请密钥 验证完手机邮箱之后,就可以申请开发者密钥 二、下载微信小程序sdk http://3gimg.qq.com/lightmap/xcx/jssdk/qqmap-wx-jssdk1.0.zip 并解压,然后将其解压放入你的微信小程序开发目录的util中,这个压缩文件中
分类: 其他 发布时间: 01-22 23:43 阅读次数: 0