-项目概述-
以前的旧模块搁置很久没用,最近看到圈子很多倒腾电脑副屏的,咱虽然没钱,但是闲啊,刚好手头有这些东西,开干。
目的:
材料清单:LCD一块,HC-04蓝牙模块,10K可调电阻,杜邦线,PC,51单片机最小系统板一块(其余种类也可,有串口即可)
-成品预览-
-项目框架-
51单片机的STC8G系列完成硬件逻辑,蓝牙模块负责收发,项目框架如下:
-硬件资料,代码-
51接收端资料:
1 #include <STC8.H> 2 #include "LCD1602.h" 3 4 // #include "Display1602.h" 5 6 7 #define uchar unsigned char 8 #define uint unsigned int 9 10 sbit res_vcc = P3^0; 11 sbit res_gnd = P3^1; 12 13 sbit back1_vcc = P3^2; 14 sbit back1_gnd = P3^3; 15 16 sbit Time_vcc = P1^0; 17 sbit Time_gnd = P1^4; 18 19 int Time[3] = {0, 55, 16}; //秒,分,时 20 uint Data[3] = {20,11,2022}; //年,月,日 21 uint Week[7] = {0 ,1, 2, 3, 4, 5, 6}; 22 enum WEEK{SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}; 23 uint count; 24 uchar num; 25 char sep = '-'; 26 27 uchar i,flag,j,show_time; 28 uchar Info_buffer[16]; 29 uchar Info_buffer1[16]; 30 31 32 //uchar DS1302_Time_test[]={27,1,19,12,00,00,1}; 33 //char DS1302_Time_test[] = "27,1,19,12,00,00,1"; 34 uchar code Data_array[10] = "2022-06-14"; 35 uchar code Week_array[3] = "WED"; 36 uchar code Time_array[8] = "11:08:09"; 37 uchar code Word_array[12] = "Starry"; 38 uchar code Tem_array[] = "32.1 C"; 39 40 //void Init_Timer0(); 41 //void TimeShow(void); 42 void DataTransfer(); 43 44 void Init_UART() 45 { 46 PCON &= 0x7F; //波特率不倍速 47 SCON = 0x50; //8位数据,可变波特率 48 AUXR &= 0xBF; //定时器时钟12T模式 49 AUXR &= 0xFE; //串口1选择定时器1为波特率发生器 50 TMOD &= 0x0F; //设置定时器模式 51 TMOD |= 0x20; //设置定时器模式 52 TL1 = 0xFD; //设置定时初始值 53 TH1 = 0xFD; //设置定时重载值 54 ET1 = 0; //禁止定时器%d中断 55 TR1 = 1; //定时器1开始计时 56 EA = 1; 57 ES = 1; 58 59 } 60 61 void main() 62 { 63 P1M0 = 0; 64 P1M1 = 0; 65 66 P3M0 = 0; 67 P3M1 = 0; 68 69 P2M0 = 0; 70 P2M1 = 0; 71 72 res_vcc = 1; 73 back1_vcc = 1; 74 Time_vcc = 1; 75 76 res_gnd = 0; 77 back1_gnd = 0; 78 Time_gnd = 0; 79 80 81 LCD_set(); 82 Init_UART(); 83 // Init_Timer0(); 84 85 while(1) 86 { 87 //TimeShow(); 88 LCD_write_Chars(0,0,Info_buffer); 89 LCD_write_Chars(0,1,Info_buffer1); 90 91 if(flag == 1) 92 { 93 //LCD_write_com(0x01); 94 LCD_write_Chars(0,0,Info_buffer); 95 LCD_write_Chars(0,1,Info_buffer1); 96 for(i=0;i<16;i++) 97 Info_buffer[i]=0x00; 98 for(i=0;i<16;i++) 99 Info_buffer1[i]=0x00; 100 flag = 0; 101 } 102 103 } 104 } 105 106 void Init_Timer0() 107 { 108 EA = 1; 109 ET0 = 1; 110 TMOD = 0x01; 111 TH0 = (65536-10000)/256; 112 TL0 = (65536-10000)%256; 113 TR0 = 1; 114 } 115 116 void TimeShow(void) 117 { 118 LCD_writ_Number(0, 1, 2, Time[2]); // 显示小时 119 lcd_delay(1); 120 121 LCD_writ_Char(2, 1, '-'); 122 lcd_delay(1); 123 124 LCD_writ_Number(3, 1, 2, Time[1]); // 显示分钟 125 lcd_delay(1); 126 127 LCD_writ_Char(5 ,1 , '-'); 128 lcd_delay(1); 129 130 LCD_writ_Number(6, 1, 2, Time[0]); // 显示秒钟 131 lcd_delay(1); 132 //----------------------------------------------------- 133 LCD_writ_Number(0, 0, 4, Data[2]); // 显示日期 134 lcd_delay(1); 135 136 LCD_writ_Char(4, 0, '-'); 137 lcd_delay(1); 138 139 LCD_writ_Number(5, 0, 2, Data[1]); // 显示月份 140 lcd_delay(1); 141 142 LCD_writ_Char(7 ,0 , '-'); 143 lcd_delay(1); 144 145 LCD_writ_Number(8, 0, 2, Data[0]); // 显示年份 146 lcd_delay(1); 147 } 148 149 void UART_Interrupt() interrupt 4 150 { 151 ES = 0; 152 for(j=0;SBUF!=0X0A;j++) 153 { 154 while(!RI); 155 if(SBUF==0X0A) 156 goto A; 157 if(j<16) 158 Info_buffer[j]= SBUF; 159 else 160 Info_buffer1[j-16]= SBUF; 161 RI = 0; 162 } 163 A: RI=0; 164 flag = 1; 165 ES = 1; 166 }
电脑发送端资料:
1 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 2 #include <stdio.h> 3 #include <Windows.h> 4 #include<time.h> 5 #include <tchar.h> 6 #include "readport.h" 7 8 #define DIV 1024 9 #define WIDTH 7 10 #define GB(x) (((x).HighPart << 2) + ((DWORD)(x).LowPart) / 1024.0 / 1024.0 / 1024.0) 11 12 #pragma warning(disable: 4996) 13 14 #define true 1 15 typedef unsigned char U_CHAR; 16 17 //获取系统时间 18 void getSystemTime(char* buffer) { 19 20 char buf[128]; 21 time_t rawtime; 22 struct tm * timeinfo; 23 time(&rawtime); 24 timeinfo = localtime(&rawtime); 25 strftime(buf, sizeof(buf), " %m-%d %H:%M:%S", timeinfo); 26 strcpy(buffer, buf); 27 } 28 29 //CPU利用率 30 FILETIME m_preidleTime; 31 FILETIME m_prekernelTime; 32 FILETIME m_preuserTime; 33 34 __int64 CompareFileTime2(FILETIME time1, FILETIME time2) 35 { 36 __int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime; 37 __int64 b = time2.dwHighDateTime << 32 | time2.dwLowDateTime; 38 39 40 return b - a; 41 } 42 43 void GetCpuUseage() 44 { 45 GetSystemTimes(&m_preidleTime, &m_prekernelTime, &m_preuserTime); 46 Sleep(1000); 47 } 48 49 double CpuUseage() 50 { 51 FILETIME idleTime; 52 FILETIME kernelTime; 53 FILETIME userTime; 54 GetSystemTimes(&idleTime, &kernelTime, &userTime); 55 56 57 int idle = CompareFileTime2(m_preidleTime, idleTime); 58 int kernel = CompareFileTime2(m_prekernelTime, kernelTime); 59 int user = CompareFileTime2(m_preuserTime, userTime); 60 61 62 if (kernel + user == 0) 63 return 0.0; 64 //(总的时间-空闲时间)/总的时间=占用cpu的时间就是使用率 65 double cpu = abs((kernel + user - idle) * 100 / (kernel + user)); 66 67 m_preidleTime = idleTime; 68 m_prekernelTime = kernelTime; 69 m_preuserTime = userTime; 70 return cpu; 71 } 72 73 //读取操作系统的名称 74 void GetSystemName(char* osname) 75 { 76 char buf[128]; 77 SYSTEM_INFO info; //用SYSTEM_INFO结构判断64位AMD处理器 78 GetSystemInfo(&info); //调用GetSystemInfo函数填充结构 79 OSVERSIONINFOEX os; 80 os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); 81 82 strcpy(buf, "unknown OperatingSystem."); 83 84 if (GetVersionEx((OSVERSIONINFO *)&os)) 85 { 86 //下面根据版本信息判断操作系统名称 87 switch (os.dwMajorVersion)//判断主版本号 88 { 89 case 4: 90 switch (os.dwMinorVersion)//判断次版本号 91 { 92 case 0: 93 if (os.dwPlatformId == VER_PLATFORM_WIN32_NT) 94 strcpy(buf, "Microsoft Windows NT 4.0"); //1996年7月发布 95 else if (os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) 96 strcpy(buf, "Microsoft Windows 95"); 97 break; 98 case 10: 99 strcpy(buf, "Microsoft Windows 98"); 100 break; 101 case 90: 102 strcpy(buf, "Microsoft Windows Me"); 103 break; 104 } 105 break; 106 107 case 5: 108 switch (os.dwMinorVersion) //再比较dwMinorVersion的值 109 { 110 case 0: 111 strcpy(buf, "Microsoft Windows 2000"); //1999年12月发布 112 break; 113 114 case 1: 115 strcpy(buf, "Microsoft Windows XP"); //2001年8月发布 116 break; 117 118 case 2: 119 if (os.wProductType == VER_NT_WORKSTATION 120 && info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) 121 { 122 strcpy(buf, "Microsoft Windows XP Professional x64 Edition"); 123 } 124 else if (GetSystemMetrics(SM_SERVERR2) == 0) 125 strcpy(buf, "Microsoft Windows Server 2003"); //2003年3月发布 126 else if (GetSystemMetrics(SM_SERVERR2) != 0) 127 strcpy(buf, "Microsoft Windows Server 2003 R2"); 128 break; 129 } 130 break; 131 132 case 6: 133 switch (os.dwMinorVersion) 134 { 135 case 0: 136 if (os.wProductType == VER_NT_WORKSTATION) 137 strcpy(buf, "Microsoft Windows Vista"); 138 else 139 strcpy(buf, "Microsoft Windows Server 2008"); //服务器版本 140 break; 141 case 1: 142 if (os.wProductType == VER_NT_WORKSTATION) 143 strcpy(buf, "Microsoft Windows 7"); 144 else 145 strcpy(buf, "Microsoft Windows Server 2008 R2"); 146 break; 147 } 148 break; 149 } 150 }//if(GetVersionEx((OSVERSIONINFO *)&os)) 151 152 strcpy(osname, buf); 153 } 154 155 int main() { 156 157 WZSerialPort w; 158 //这里是选择端口号,其他波特率信息可在头文件修改,或者在下面重新赋值。 159 if (w.open("COM6")) 160 { 161 //cout << "打开成功" << endl; 162 //cout << "在这里我发送:恭喜发财" << endl; 163 164 //w.send("恭喜发财"); 165 //w.close(); 166 } 167 else 168 { 169 cout << "打开失败" << endl; 170 } 171 172 //获取系统时间 173 char buffer[128]; 174 getSystemTime(buffer); 175 //puts(buffer); 176 177 //系统运行时间 178 clock_t start, finish; 179 double duration; 180 181 start = clock(); 182 183 184 //系统版本名称 185 char osname[20]; 186 GetSystemName(osname); 187 //printf("%s\n", osname); 188 189 while (true) 190 { 191 // 192 193 //CPU利用率 194 U_CHAR sysStateCpu[5]; 195 double cpu = CpuUseage(); 196 sprintf((char*)sysStateCpu, "%.lf", cpu); 197 //printf("CPU:%s%%\n", sysStateCpu); 198 199 //系统时间 200 char buffer[128]; 201 getSystemTime(buffer); 202 puts(buffer); 203 204 // 系统运行时间 205 finish = clock(); 206 duration = (double)(finish - start) / CLOCKS_PER_SEC; 207 //printf("%.0f 秒\n", duration); 208 209 //内存使用率 210 char bufPreCPU[10]; 211 MEMORYSTATUSEX statex; 212 statex.dwLength = sizeof(statex); 213 GlobalMemoryStatusEx(&statex); 214 sprintf(bufPreCPU, "MEM:%ld%% CPU:%2s%% %s%\n", statex.dwMemoryLoad, sysStateCpu, buffer); 215 216 217 218 //puts(bufPreCPU); 219 w.send(bufPreCPU); 220 Sleep(1000); 221 } 222 printf("hello world!\n"); 223 system("pause"); 224 225 }
项目全部文件:
个人博客下方私信领取
http://potatoworld.top:5800/
-项目槽点-
启动文件夹开机自启:http://blog.csdn.net/misterdo/article/details/106898689
上述图示过后,得到了蓝牙模块的端口,那就一切好说了,直接电脑打开串口软件,往里面丢东西便是。
前言当接口请求参数不合法的,可以给前端返回报错原因,给个友好的返回消息,在add_argument()中可以通过help参数来定义错误信息每个字段的错误消息可以使用help参数(RequestParser.add_argument)进行自定义。 如果未提供help参数,则该字段的错误消息将是类型错误本身的字符串表示形式。如果help提供,则错误消息将是的值help。classRegister(Resource): @staticmethod defpassword_validate(value,name): iflen(value)<6orlen(value)>16: raiseValueError(name+'lengthmustbe6-16') returnvalue defpost(self): #校验入参 parser=reqparse.RequestParser() parser.add_argument('username',required=True,type=str,nullable=False) parser.a
SAPSD基础知识之组织结构销售相关的组织结构Ø销售组织SalesorganizationØ分销渠道DistributionchannelØ产品组DivisionØ销售范围SalesareaØ销售办公室SalesofficeØ销售组SalesgroupØ销售人员SalespersonØ工厂PlantØ库位Storagelocation销售组织一个销售组织代表一个合法的销售实体。一个销售组织只能分配给一个公司代码。一个销售组织可以分配给多个工厂。每个销售组织有自己的主数据,包括客户主数据、物料主数据以及条件记录。分销渠道在一个销售组织中,客户可以通过一个或多个分销渠道获得服务。可以为销售组织和分销渠道的组合定义不同的主数据。产品组对某一产品组,可以执行统计分析或制定市场战略。销售范围销售范围是销售组织/分销渠道/产品组的组合。销售订单,交货单,开票都分配到某一销售范围。所有的销售流程都发生在某一特定的销售范围。相关的主数据经常维护在销售范围层。应该尽量保持销售范围组织结构越简单越好。销售办公室销售办公室可以分配给一个或多个销售范围;销售组可为每一个产品组或分销渠道定义一个销售组。销售组分
Let’sreviewwhatwehavelearnedsofar.ThroughSQLtraceanddebugging,wehavelearnedbelow:(1)WhenweclickactivatebuttoninABAPdevelopmenttool(IcallitEclipsenowinthisblog),thereareseveralcorrespondingABAPobjectsgeneratedandtableentriesinserted.ThroughdebuggingweknowlotsofrelatedlogicareimplementedinpackageSDDL.(2)Whenwetestread&searchfunctionagainsttheodataservicecreatedontopoftheCDSview,theoperationisdelegatedtoCL_SQL_STATEMENT~EXECUTE_QUERY.AndnowIaskmyself,sincewhatwehavetypedinEclipseispuretext,howd
一直以来,都是在虚拟机里面使用Linux系统,但随着使用需求的增加,于是直接在笔记本中安装Ubuntu。基本上就是Windows10+Ubuntu18.04LTS双系统共存模式!浅谈很多同学在虚拟机中安装Linux(实际上不仅限于Ubuntu),都会觉得安装很简单,基本上就是一直点下一步之类的,当然了,ArchLinux之流除外哈。不是说ArchLinux不好用(我觉得过渡动画还比较流畅,速度也很快),而是它的安装过程,感觉就是个过滤用户的阴谋?既然要直接在笔记本上安装,那么,肯定会有不少坑的,而且还是双系统共存。最常见的就是分区和假死了吧(卡死在某一界面)。其它的诸如制作镜像,装驱动出现问题,点击现在重启卡死等。我在刚买我的暗影精灵3的时候,就尝试过双系统,然后,你懂的。我直接就留下了心里阴影,因为那时候没做备份,后来我备份的好习惯就是这么被逼出来的?准备工作电脑配置先介绍下我的电脑配置吧。产品名称:OMENbyHPLaptop15-ce0xx BIOS:F.18-11/09/2018 内存总量:16GB 处理器名称:Intel(R)Core(TM)i7-7700HQCPU@2.80
什么是间隙锁? 间隙锁是一个在索引记录之间的间隙上的锁。 间隙锁的作用 保证某个间隙内的数据在锁定情况下不会发生任何变化。比如mysql默认隔离级别下的可重复读(RR)。当使用唯一索引来搜索唯一行的语句时,不需要间隙锁定。如下面语句的id列有唯一索引,此时只会对id值为10的行使用记录锁。select*fromtwhereid=10forupdate;//注意:普通查询是快照读,不需要加锁 如果,上面语句中id列没有建立索引或者是非唯一索引时,则语句会产生间隙锁。 如果,搜索条件里有多个查询条件(即使每个列都有唯一索引),也是会有间隙锁的。需要注意的是,当id列上没有索引时,SQL会走聚簇索引的全表扫描进行过滤,由于过滤是在MySQLServer层面进行的。因此每条记录(无论是否满足条件)都会被加上X锁。但是,为了效率考量,MySQL做了优化,对于不满足条件的记录,会在判断后放锁,最终持有的,是满足条件的记录上的锁。但是不满足条件的记录上的加锁/放锁动作是不会省略的。所以在没有索引时,不满足条件的数据行会有加锁又放锁的耗时过程。间隙的范围 根据检索条件向下寻找最靠近检索条件的记录值
导读:每隔4年都有那么1个月,无论是线上还是线下,不管是真球迷还是真球盲,你的社交圈子都会被世界杯话题攻占。每到这个时候,真球迷一言不合就面红耳赤,伪球迷尬聊不超过3句就暴露“球商”……用段子缓解尴尬?本届世界杯没有中国队、没有贝克汉姆、没有科比、没有姚明之类的老梗已经烂大街了,完全笑不出来好吗?还能不能愉快玩耍了?能啊!你聊数据啊!如果要段子,你可以这样:拥有“混凝土式防守”的意大利队,世界杯总失球数已经达到77个,而中国队只有9个!中国队跟德国队一样,从未输过点球大战!除了段子,你甚至可以像解说嘉宾一样专业:德国是成绩最稳定的球队,从1954年起至今的16届世界杯,德国都至少进入了8强。中国没出线?没关系,我们2002年毕竟成功过。而卢森堡队从1934年第2届世界杯起就开始参加预选赛,至今从未入围决赛圈。英格兰3次参加点球大战,3次全都输了……德国和阿根廷已经在世界杯赛场上7次交手,并且3次是在决赛,真是冤家路窄。大热必死!新世纪的4届世界杯,有3次卫冕冠军都未能小组出线。怎么样?从热门话题到冷知识,不管怎么聊都无懈可击!如果你想制造一款能跟真球迷愉快聊球的AI,你需要喂给它的数据
1Anki推出玩具机器人Cozmo,定位智能教育平台初创公司Anki昨天发布了一款名叫Cozmo的智能玩具机器人,外观造型将赛车与机器人结合在一起,拥有着人脸识别系统和情感引擎,能够模仿像人类一样丰富的情感。公司将Cozmo定位于面向儿童的教育机器人平台进行推广。Cozmo上运行的人工智能系统,每秒钟都要完成上千次不同的决定。但Cozmo本身的运算能力不强,需要与Android、iOS设备配对使用,让智能手机承担重要的运算任务。Anki计划逐步开放Cozmo系统,并发布软件开发套装。公司还与卡耐基梅隆大学合作,教学生编写Cozmo能用的游戏。Cozmo预计今年10月份上市,预订价格为180美元(约合人民币1200元)。 Anki公司成立于2010年,由CMU的3个机器人博士毕业生共同创办。A轮融资的投资人为著名的A16Z,最近一轮融资为2014年9月的5500亿美金的C轮融资。来源:geekwire2英伟达加强与德国AI研究所联系,谷歌也曾投资为了拓展市场并保持技术优势,英伟达与德国人工智能研究中心(DFKI)进一步加强合作,将DFKI定为GPU研究中心。英伟达方面表示,GPU研究中心
大家好!今天给大家介绍一篇2022年4月发表在eBioMedicine(IF:8.143)上的一篇文章。作者基于LGG患者的转录组数据构建可以准确预测患者预后的模型-APOLLO。APOLLO:Anaccurateandindependentlyvalidatedpredictionmodeloflower-gradegliomasoverallsurvivalandacomparativestudyofmodelperformanceAPOLLO:可以准确预测低级别胶质瘤患者总生存期的预后模型摘要背景:目前还没有准确稳定预测低级别胶质瘤(LGG)患者生存期的预后模型,本研究旨在结合临床数据,基因互作信息和转录生物标志物构建LGG患者的预后模型。方法:基于6个LGG患者的1420例转录组数据集构建可以准确预测LGG患者总生存期的预后模型-APOLLO,并将APOLLO模型与现有预测模型进行比较。结果:APOLLO可以准确鉴定死亡率较高的患者,APOLLO可以准确预测6个独立数据集的36个月和60个月的生存率,AUC分别为0.901和0.843。此外,APOLLO可以有效筛选死亡敏感性患
Grpc介绍 GitHub: https://github.com/grpc/grpc gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(ProtocolBuffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、和电池寿命。 gRPC支持多种语言,并能够基于语言自动生成客户端和服务端功能库。目前,在GitHub上已提供了C版本grpc、Java版本grpc-java和Go版本grpc-go,其它语言的版本正在积极开发中,其中grpc支持C、C++、Node.js、Python、Ruby、Objective-C、PHP和C#等语言,grpc-java已经支持Android开发。 gRPC已经应用在Google的云服务和对外提供的API中,其主要应用场景如下: 低延
出处:https://cizixs.com/2018/08/26/what-is-istio 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。 前言 随着微服务架构的流行,服务网格技术获得了业界的广泛关注,作为实现云原生的重要积木,各大厂商也纷纷开始布局,Amazon在2019年4月份推出了AppMesh;Google、IBM、Lyft联合开发了Istio。 Istio作为下一代服务网格的整体解决方案,得到了业界的普遍认可,站在kubernetes巨人的肩膀上,极大地提升了分布式微服务应用的研发和运维效率。 2020是云原生普及的一年,如何部署、使用、运维Istio将是必须要学习的知识。 什么是istio? 官方对istio的介绍浓缩成了一句话: Anopenplatformtoconnect,secure,controlandobserveservices. 翻译过来,就是”连接、安全加固、控制和观察服务的开放平台“。开放平台就是指它本身是开源的,服务对应的是微服务,也可以粗略地理解为单个应用。中间的四个动词就是istio的主要功能,官方也各有一句
引:伤寒论第40条,伤寒表不解,心下有水气,干呕发热而咳,或渴,或判,或噎,或小便不利,少腹满,或喘者,小青龙汤主之。麻黄(去节)芍药 细辛 干姜 甘草(炙) 桂枝(各三两,去皮) 五味子(半升) 半夏(半升,洗) 他说,人得了感冒,伤寒证,喝药还是没有好,心下有水气,就是肚子里有水,涨涨的。干呕发热而咳,病人发烧,胃里面有水,停水,所以干呕反胃,像怀孕妇女一样反胃,不想吃饭。 他又咳了,因为胃里面的水会往肺走,肺里也有水了,可能会流鼻涕的,影响了呼吸了,才咳。或渴,或利,或噎,因为胃里有停水,胃里津液没有了,会感到口渴,昨天,我们讲过了,胃中的停水,它和津液是不同的。停水为邪,津液为正,津液属血液的一部分。或利,因为胃肠中有水,所以他会拉稀,胃中有水,胃也一定很寒的。胃受凉,也会拉稀。或小便不利,胃中有水,肯定是小便不利了。小便正常的话,胃中不会有积水的。所以,病人描述他拉稀时,我们就会知道,他小便不利,水走胃肠了。少腹满,胃肠里有水,小肚子也有点涨了。或喘者,可能胃中积水上行入肺,影响呼吸,引起哮喘。
通过对部分在职员工进行抽样调查,我们得出一些关于访问习惯的数据,下面就跟随小编一起来看看有没有什么有意思的人群或现象。 此次被调查者百分之六十以上工作经验为0~3年,3~6年与6年以上工作经验的各占百分之十左右。看来被调查者当中以小白居多,反映出现在互联网行业的一大问题,会做的很多,但做好且资深的较少。 被调查者平时主要浏览的网站以资讯新闻类为主,比重占到了三分之一,IT技术类与娱乐八卦类各占四分之一。由此可见被调查者平日仍然最关注时事新闻及话题性事件,果然无论是何种职业新闻与娱乐是最吸引眼球的,毕竟大家忙了一天都想放松一下。 果不其然,中午吃饭和下班回家是逛论坛的高峰期,周末大家都到户外运动社交,很好的生活习惯嘛。不过。。。四分之一的人上班逛论坛?喂,快回头!你老板过来了~ 在现阶段互联网的大趋势下,开发、产品、运营三大岗位总共占到了60%以上,真的是感叹科技的力量。 可见谷歌一下、百度一下仍是大多数人寻求解决方案的主要手段,向同事寻求帮助的人也占到四分之一,而在网上发帖求解答的人相对较少,主要是由于时效性的原因,从发帖寻求帮助到解决问题需要一段
参考文章: https://blog.csdn.net/litao31415/article/details/100144400?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.baidujs&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.baidujs /////////////////////////////////////////#解压xz-dqt-everywhere-opensource-src-5.9.8.tar.xztar-xfqt-everywhere-opensource-src-5.9.8.tar #进入平台配置目录cdqt-everywhere-opensource-src-5.9.8/qtbase/mk
首先必须要提到的是Date对象,它用来处理时间和日期。 使用newDate()语句可创建Date对象,创建出来的时间格式如下(后面提到的标准时间都是指该格式): WedJul17201913:59:21GMT+0800(中国标准时间) Date对象有以下几种创建方式: 1.letdate=newDate();2.letdate=newDate(milliseconds);3.letdate=newDate(dateString);4.letdate=newDate(year,month,day,hours,minutes,seconds); 解释: 1.不传参,获取的是当前时间; 2.传时间戳,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,由10位数字组成(毫秒是13位),这里传10位13位都可以; 3.传时间的字符串形式,如'2019/7/1714:40:30'或'2019-7-17',这里我试了一下以'/'和'-'为年月日分隔符都是可以的,空格和逗号不行,年月日要完整,时分秒可不用写全; 4.传以
云呐|原标题:监控PHP应用程序|php网站监控系统源码 1、PHP应用程序的端对端可见性 利用APM应用性能视角的PHPAPM监控代理监视PHP性能,并评估终端用户对你的应用程序的体验。你可以根据APDEX评分判断用户满意程度。响应时间、吞吐量和异常等重要参数能够揭示大量PHP服务器及其应用的信息;通过这些信息可以优化性能,并提高APDEX得分。 2、根因分析 APM应用性能视角的PHP应用监测代理可以提供关于应用程序中发生的所有事务的大量信息。您可以对web事务、后台事务和数据库事务的详细信息进行处理;这样可以避免无法识别的错误,并且可以帮助确定错误的来源。 3、标识资料库呼叫速度缓慢 云呐设备运行监控盒的PHP应用性能监控工具提供了关于数据库操作的详细信息,比如数据库事务的响应时间、调用次数以及吞吐量细节等。你能够轻易地识别出需要很长时间来完成的操作,并且在必要时终止这些操作。PHP性能监视器代理还提供了关于SQL交易的信息,您也可以通过它来识别缓慢的SQL查询。 4、调试PHP应用的跟踪 交易追踪提供了PHP应用中每个交易的简要信息。他们主要用
小齐说: 这篇文章来自读者冰红茶,他刚结束了秋招,拿了很多家offer。 和他聊完之后,我觉得他的备考思路也完全适用于美国的面试,只是分值要调整一下,但是具体每一块的内容,地球村通用。所以分享给大家一起学习一下~ 长达一年的实习、秋招之路终于落下了尾声,我最终收获了快手、百度、网易等互联网大厂的开发岗offer。 大学我学的专业是通信工程,也算是半个非科班出身,一路走就像是打怪升级的过程,不断地纠错尝试,一点经验分享给准备参加秋招的你。 大学时候每次期末考试我们都会等老师划重点,目的就是想确认考试的范围和形式以及各部分出题的分值,做到心里有数、合理分配时间。 我认为其实秋招面试的本质和平时期末考试是一回事。秋招考什么(考试范围)、秋招有哪些题型(考试形式)、以及各部分出题分值(考试各部分比重)? 我自己常常把秋招面试考察范围划分为三个部分,算法题、基础知识题、过硬的项目或实习经历。 一、算法(40分) 分值说明: 以我熟悉的开发岗位来说,对于大厂面试,我觉得算法题占了40分。 这个分数很微妙,你会发现再需要20分就可以及格了,能勉强通过这次考试。但是如果40分完全丢掉那么靠其他方面力
面向对象的概述 面向对象是以人的思想去模拟现实的世界,用到的东西主要包括抽象、封装、继承、多态。 一、面向对象的族谱图 二、面向对象过程的定义介绍 面向对象:以人的思想对现实世界进行模拟和思考,归述行为和特征 面向对象的核心是可扩展性,将经常变化的地方进行设计 面向过程:面向过程是机械式的思想,需要考虑到每个阶段的输入和输出。 接口:即互相的面,接口是定义一组相关功能点定义的集合。 抽象类:抽象类只能用于继承,不能被实例化为对象,基于类的抽象。 接口强调方法的相似性,而抽象类强调的是事务的相似性,包括属性和方法 抽象:抽取相同对象的的共有行为和特点,作用是划分类别,目的是隔离关注点,降低复杂度。 封装:隔离复杂度,保护隐私数据。(操作类中的属性强制出一套规范) 继承:继承父类中的属性和方法,主要是行为和特征上的继承。类似于生物学上的遗传,有变异,java
C国有n个大城市和m条道路,每条道路连接这n个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为1条。C国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到 C国旅游。当他得知同一种商品在不同城市的价格可能会不同这一信息之后,便决定在旅游的同时,利用商品在不同城市中的差价赚回一点旅费。设C国n个城市的标号从1~n,阿龙决定从1号城市出发,并最终在n号城市结束自己的旅行。在旅游的过程中,任何城市可以重复经过多次,但不要求经过所有n个城市。阿龙通过这样的贸易方式赚取旅费:他会选择一个经过的城市买入他最喜欢的商品——水晶球,并在之后经过的另一个城市卖出这个水晶球,用赚取的差价当做旅费。由于阿龙主要是来 C 国旅游,他决定这个贸易只进行最多一次,当然,在赚不到差价的情况下他就无需进行贸易。假设C国有5个大城市,城市的编号和道路连接情况如下图,单向箭头表示这条道路为单向通行,双向箭头表
MongDB常用操作 MongoDB安装 mac安装brewsearchmongodb#查询能安装的版本 brewinstallmongodb-community@4.2#安装4.2版本的mongodb 复制ubuntu安装apt-getinstallmongodb 复制 配置 mac配置systemLog: destination:file #日志路径 path:/usr/local/var/log/mongodb/mongo.log logAppend:true storage:#存储路径 dbPath:/usr/local/var/mongodb net: bindIp:127.0.0.1 复制ubuntu配置#存储 storage: dbPath:/var/lib/mongodb journal: enabled:true #日志 systemLog: destination:file logAppend:true path:/var/log/mongodb/mongod.log #ip和端口 net: port:27017 bindIp:127.0.0.1 #