bcoder

Sqlite中将时间戳转换为带秒或者秒的时间

 分类:Database, Sqlite 阅读 (417)  Sqlite中将时间戳转换为带秒或者秒的时间已关闭评论
3月 302023
 

将长度为10位的时间戳(秒级)转换为时间:

将长度为13位的时间戳(毫秒级)转换为时间(秒级):

将长度为13位的时间戳(毫秒级)转换为时间(毫秒级):

 

 Posted by on 2023-03-30

General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‘=’

 分类:Database, MySQL 阅读 (376)  General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‘=’已关闭评论
11月 162022
 

出现这个问题的原因是两个表的字符集不一致

解决方法有两个:

1. 在select的时候对字段进行转码,如下:

select os.*, ob.obulatitude, ob.obulongtitude from OBU_status os  left join obudevices as ob on CONVERT(os.device_ID USING utf8) COLLATE utf8_unicode_ci=ob.obuhardware

其中CONVERT(os.device_ID USING utf8) COLLATE utf8_unicode_ci使用convert函数对字段进行了转码

2. 修改表的字符集

这个比较麻烦,如果是新项目没有问题,如果是已经在运行的项目,要考虑对其他地方是不是有影响

 Posted by on 2022-11-16

复习一些几何知识

 分类:Others, Others 阅读 (416)  复习一些几何知识已关闭评论
11月 112022
 

1. 已知三角形三边长度,计算面积

三边长度:a, b, c

半周长:p = (a + b + c) / 2

三角形面积:S = √[p(p-a)(p-b)(p-c)] =(1/4)√[(a+b+c)(a+b-c)(a+c-b)(b+c-a)]

2. 已知三角形各边长度,求其中某个顶点到对边的距离

三边长度:a, b, c,求a到bc边的距离ad

根据上面公式得出三角形面积,

由公式S = 1/2 (底 x 高),则ad = 2*S / bc

3. 设三角形三边分别为a、b、c,内切圆半径为r,则三角形面积=(a+b+c)r/2

4. 已知三角形两边a,b,这两边夹角C,则S=1/2 * absinC

 Posted by on 2022-11-11

Python中使用subprocess创建的进程杀不掉的问题

 分类:Others, Python 阅读 (1,228)  Python中使用subprocess创建的进程杀不掉的问题已关闭评论
8月 232022
 

使用subprocess的Popen函数创建了一个进程

使用Popen的kill和terminate函数都杀不掉这个进程

后来发现是因为Popen的时候使用了shell=True参数,如果不使用这个参数可以杀掉

后来百度找到了其他方法

想要杀掉进程的时候使用这个kill参数并传入子进程的pid就可以了

 

参考链接:http://www.dovov.com/shell-truepythonsubprocess.html

 

 Posted by on 2022-08-23

Python读取mysql出现TypeError: tuple indices must be integers or slices, not str错误

 分类:Others, Python 阅读 (774)  Python读取mysql出现TypeError: tuple indices must be integers or slices, not str错误已关闭评论
8月 232022
 

使用下面的代码读取mysql数据时出现TypeError: tuple indices must be integers or slices, not str错误

获取cursor时未指定cursor类型,默认使用tuple类型返回,将cur = conn.cursor()这一行修改为如下就可以了

 

 Posted by on 2022-08-23

Laravel Unknown column ‘updated_at’ in ‘field list’

 分类:PHP 阅读 (432)  Laravel Unknown column ‘updated_at’ in ‘field list’已关闭评论
8月 092022
 

因为数据表不是通过Laravel的migration建的,所以没有updated_at字段

使用Model对象save的时候就会报上面的错误,解决方法就是在Model里增加const UPDATED_AT = null;,如下代码所示:

 

 Posted by on 2022-08-09

MediaRecorder方法属性详解

 分类:Android, Java 阅读 (847)  MediaRecorder方法属性详解已关闭评论
6月 282022
 

基本Android sdk28版本编写

一、方法

setMaxDuration(int max_duration_ms)

  设置最大录像时长(单位:毫秒),需要在setOutFormat()之后prepare()之前调用。当录像时长达到这个时长,将触发MediaRecorder.OnInfoListener事件,事件的what参数为MEDIA_RECORDER_INFO_MAX_DURATION_REACHED,并且录像停止。停止动作是异步执行的,不能保证收到OnInfoListener时停止操作已完成。

setMaxFileSize(long max_filesize_bytes)

  设置最大录像文件大小(单位:字节),需要在setOutFormat()之后prepare()之前调用。当录像时长达到这个时长,将触发MediaRecorder.OnInfoListener事件,事件的what参数为MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED,并且录像停止。停止动作是异步执行的,不能保证收到OnInfoListener时停止操作已完成。

setNextOutputFile(File file)

  当setOutputFile或者setNextOutputFile所设置的输出文件达到最大文件尺寸时,使用此函数设置下一个输出文件。文件应该是可查找的(seekable)?当设置了next output file后,程序在调用mediarecorder.stop之前不要使用这个文件。程序应该在收到what参数为MEDIA_RECORDER_INFO_MAX_FILESIZE_APPROACHING的OnInfoListener事件之后,what参数为MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED的OnInfoListener之前调用setNextOutputFile函数。当收到what参数为MEDIA_RECORDER_INFO_NEXT_OUTPUT_FILE_STARTED的OnInfoListener事件后,此函数设置的文件才开始被录制。当之前设置的文件未被使用时,是不能设置新的输出文件的。当调用stop停止录像时,程序负责清理未使用的文件。

setPreviewDisplay(Surface sv)

  设置一个Surface用于预览正在录制的视频。需要在prepare函数前调用此函数。

  如果使用了setCamera(camera),并且camera对象已经设置了surface,程序就不用再调用此函数设置surface了,如果使用了一个非null值的surface作为参数调用了此函数,camera的预览surface将被新设置的surface代替;如果根本没有调用此函数或者传入了一个为null的surface,media recorder不会改变camera的surface。

 Posted by on 2022-06-28

Android开发使用js在webview中模拟登录

 分类:Android, Java 阅读 (969)  Android开发使用js在webview中模拟登录已关闭评论
2月 172022
 

1.首先要设置setJavaScriptEnabled为true,使用webview支持js

2.使用js脚本的document.getElementById找到用户名和密码输入框,并模拟输入用户名和密码的内容,然后找到提交按钮并模拟click点击。注意:js必须写成一个函数(示例代码中的jsLogin函数)运行。

 

Android支持的传感器类型

 分类:Android, Java 阅读 (1,314)  Android支持的传感器类型已关闭评论
12月 302021
 

SensorEvent使用的系统坐标系

TYPE_ACCELEROMETER = 1;

加速度计。

TYPE_ACCELEROMETER_UNCALIBRATED = 35;

无标定加速度计。

TYPE_AMBIENT_TEMPERATURE = 13;

环境温度。values[0]代表环境的摄氏温度。

TYPE_DEVICE_PRIVATE_BASE = 65536;

设备私有传感器定义范围基础值。

TYPE_GAME_ROTATION_VECTOR = 15;

游戏旋转向量

TYPE_GEOMAGNETIC_ROTATION_VECTOR = 20;

TYPE_GRAVITY = 9;

重力。

TYPE_GYROSCOPE = 4;

陀螺仪。对应值表示设备沿x, y, z三轴旋转的速度(弧度/秒),逆时针旋转时值为正

values[0]: Angular speed around the x-axis
values[1]: Angular speed around the y-axis
values[2]: Angular speed around the z-axis

TYPE_GYROSCOPE_UNCALIBRATED = 16;

TYPE_HEART_BEAT = 31;

TYPE_HEART_RATE = 21;

TYPE_LIGHT = 5;

环境亮度。

TYPE_LINEAR_ACCELERATION = 10;

线性加速度。表示沿设备各个轴的线性加速度值,已去除重力的影响。单位m/s^2,坐标系和加速度计的相同。

加速度计、重力和线性加速度计需要满足下面的公式

加速度=重力+线性加速度

TYPE_LOW_LATENCY_OFFBODY_DETECT = 34;

TYPE_MAGNETIC_FIELD = 2;

 

TYPE_MAGNETIC_FIELD_UNCALIBRATED = 14;

TYPE_MOTION_DETECT = 30;

TYPE_ORIENTATION = 3;

横滚角-roll、俯仰角-pitch、偏航角-yaw

返回值的单位为度

  • values[0]:方位角,磁场北极和y轴的夹角,其实就是沿z轴的旋转角度(范围:0-359),0-正北,90-正东,180-正南,270-正西。
  • values[1]:俯仰角,手机沿x轴的旋转角度,范围-180-180度,手机头朝下旋转时为正值,手机头朝上旋转时为负值
  • values[2]:横滚角,手机沿y轴的旋转角度,范围-90-90度,逆时针旋转为正值,顺时针旋转为负值

TYPE_POSE_6DOF = 28;

TYPE_PRESSURE = 6;

values[0]表示大气压,单位hPa(百帕)

TYPE_PROXIMITY = 8;

TYPE_RELATIVE_HUMIDITY = 12;

TYPE_ROTATION_VECTOR = 11;

TYPE_SIGNIFICANT_MOTION = 17;

TYPE_STATIONARY_DETECT = 29;

TYPE_STEP_COUNTER = 19;

TYPE_STEP_DETECTOR = 18;

https://developer.android.google.cn/reference/android/hardware/SensorEvent

 Posted by on 2021-12-30

Installation failed with messag failed to commit install session….

 分类:Android, Java 阅读 (2,535)  Installation failed with messag failed to commit install session….已关闭评论
12月 282021
 

使用Android Studio在三星Galaxy Tab S7(Android 11)上调试应用时出现如下错误

Installation failed with messag failed to commit install session 1992275399 with command cmd package install-commit 1992275399. Error: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed parse during installPackageLI: Failed to read manifest from /data/app/vmdl1992275399.tmp/split_lib_slice_9_apk.apk: null. 

It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.

点击ok后,提示DELETE_FAILED_INTERNAL_ERROR.

解决办法:后来把应用的targetSdkVersion由32改为28就可以安装了。

 Posted by on 2021-12-28