NR CSI(二) the workflow of CSI report

news2024/11/16 13:56:46

微信同步更新欢迎关注同名modem协议笔记

本篇内容是对CSI report相关流程的整理,其描述主要集中在R16 38.331 38.321 38.214中,以实网中的一个配置开始,看下相关定义。

b41645a08077453ea90b95569d6242d1.png

如上图实网中的配置,CSI-ReportConfig 对应的就是Reporting Setting,因配置比较多,故只截取其中一部分内容,其中resourceForChannelMeasurement/csi-IM-ResourceForInterference 对应的CSI-ResourceConfigId会与CSI-ResourceConfig进行关联。

39270fad36d044b0a6aa256e85e3c83d.png

上图中的配置就是CSI-ResourceConfig,对应Resource setting,即report时选择什么资源进行测量并上报。对于周期和半持续,一个Resource Config中,只有一个CSI-RS Resource Set,对于非周期可以有多个CSI-RS resource set。

接下来就分别来看下reporting setting和Resource setting的相关内容,这部分主要在spec 38.214。

 

reporting setting

a852b08c09d4474a97b769a92891a4a1.png

reporting setting指的是RRC层配置CSI-ReportConfig,需要与RRC 层参数CSI-ResourceConfig中的BWP-Id进行关联,协议上规定一个UE可以配置最多48个Report Config;CSI-ReportConfig中配置的参数包含码本配置、时域限制、上报的测量量(LI/CRI/L1-RSRP/L1-SINR/SSBRI)和CQI 和 PMI 的频率粒度等。

66561ac3df7840af9bc955ca8678f7b8.png

CSI-ReportConfig的时域行为由RRC层参数reportConfigType指定,其可以配置为aperiodic,

semiPersistentOnPUCCH,semiPersistentOnPUSCH或periodic。对于semiPersistentOnPUCCH/semiPersistentOnPUSCH/periodic的CSI reporting,会配置周期和时隙偏移。

ee57bf8213e14c25bf91a2c80da8ae87.png

reportQuantity代表上报的测量量,具体内容可以参考上图;reportFreqConfiguration代表频域的report粒度,包含CSI report band及CQI/PMI report 是wideband 或suband的情况。

172031cc42e24f49873a79c668dac3a2.png

timeRestrictionForInterferenceMeasurements/timeRestrictionForChannelMeasurements可以分别控制是否开启时域限制;codebookConfig为具体的码本配置,码本可以是Type-I/Type II/Enhanced Type II CSI码本。

 

 Resource setting

89afc6a9ca8a470ea22fd028a0434481.png

Resource setting对应RRC层配置的CSI-ResourceConfig,即选择什么资源进行测量并上报,resource可以是NZP-CSI-RS和SSB或者CSI-IM resource,如上图结构需要与bwp-Id进行绑定且只能与具有相同DL BWP的CSI report setting进行关联。

CSI ResourceConfig中的IE resourceType 可以配置为aperiodic/semiPersistent/periodic;对于periodic/semi-persistent CSI Resource Setting,只能配置一个CSI-RS Resource Set。

2319f05c4a2246d88d34231621ad8ce2.png

CSI Resource config可以配置nzp CSI-RS和CSI-IM resource,在与CSI reporting setting进行绑定时,NZP CSI-RS resource可以用于channel/interference测量;CSI-IM顾名思义,只能用于interference测量。

8cb42887f0014e29915dc28ee008cfc0.png

aperiodic CSI场景,CSI-AperiodicTriggerState会和多个CSI-ReportConfig相关联,这时候CSI-ReportConfig的关联的CSI-ResourceConfig resourceType可以是Periodic/Aperiodic/semi-persistent。

如果只配置了一个Resource Setting时,那一定是与resourceForChannelMeasurement相关联,用于L1-RSRP信道测量,或者L1-SINR computation的信道和干扰测量;

如果配置了2个ResourceSetting时,第一个Resource setting与resourceForChannelMeasurement关联,用于信道测量;第二个与csi-IM-ResourceForInterference 或nzp-CSI-RS-ResourcesForInterference关联,用于基于CSI-IM/NZP CSI-RS的干扰测量。

如果配置了3个ResourceSetting时,第一个Resource setting与resourceForChannelMeasurement关联,用于信道测量;第二个与csi-IM-ResourceForInterference 关联,用于基于CSI-IM的干扰测量;第三个与或nzp-CSI-RS-ResourcesForInterference关联,用于基于NZP CSI-RS的干扰测量。

cf4374f1c066459aba1d411139e511c2.png

大意如上图,在CSI-ReportConfig 中reportConfigType =aperiodic,resourceForChannelMeasurement 是必须配置的IE,csi-IM-ResourceForInterference和nzp-CSI-RS-ResourcesForInterference根据实际情况,为可选配置项,如果配置的话,就要参照上述要求进行配置。

689b67d4c0ab4768b4026806d54b662e.png

semi-persistent/periodic CSI场景,如果只配置了一个Resource Setting时,那一定是与resourceForChannelMeasurement相关联,用于L1-RSRP信道测量,或者L1-SINR computation的信道和干扰测量;

如果配置了2个ResourceSetting时,第一个Resource setting与resourceForChannelMeasurement关联,用于信道测量;第二个与csi-IM-ResourceForInterference 关联,用于基于CSI-IM的干扰测量。对于L1-SINR computation场景,第二个resource setting要与nzp-CSI-RS-ResourcesForInterference关联,用于基于CSI-IM或NZP CSI-RS的干扰测量。大意和aperiodic CSI场景类似根据实际report情况,对Resource setting进行配置。

上述内容过于枯燥,不太容易理解,参照38.331中配置结构结合实网log看,就会清楚许多,其内容主要是网络侧配置要求,上面的内容也并没有涵盖spec 38.214中所有的规则描述,只是其中一部分个人认为对理解CSI report有帮助的内容,感兴趣可以查看原文;接下来就开始CSI report 触发的相关流程。

3af3c660b7c54e70bd05e090f2478a33.png

CSI包含LI/CQI/PMI/CRI/RI,各个参数之间的计算关系如上,CSI的计算是芯片厂商私有算法,协议中也没有提及,但是CSI report的上报涉及的CSI-RS resource及CSI report的配置协议中规定的很详细。

 

Reporting configurations

306be8cf943f46e4b63c4dcffae01760.png

CSI report类型可以配置为aperiodic(通过PUSCH传输),periodic(使用PUCCH传输)或semi-persistent(通过PUCCH或者DCI调度的PUSCH传输)。CSI-RS resource同样可以配置为periodic/semi-persistent/aperiodic。

 

下图是CSI Report配置和CSI-RS resource配置之间的可能关系。

d9b2ad0a3c414a239b36962dedf232c2.png

从report Configuration角度来看:

当 Report 配置为 Periodic 时,CSI-RS Resource Configuration也应为 Periodic。

当 Report 配置为 Semi-persistent 时,CSI-RS Resource Configuration可以是 periodic 或 Semi-Persistent。

当report配置为aperiodic时,CSI-RS resourece配置可以是任何类型(periodic/Semi-Persistent/aperiodic)。

 

从Resource Configuration角度来看:

当Resource Configuration为periodic时,Report Configuration可以设置为任何类型(periodic, semi-persistent or aperiodic)。

当Resource Configuration是semi-periodic时,Report Configuration可以是Semi-persistent或Aperiodic。

当Resource Configuration为aperiodic时,Report Configuration只能是Aperiodic。(CSI-RS Configuration = NZP CSI RS or CSI-IM)。

 

 

CSI report的触发,基站要先进行CSI-RS transimit ,之后UE根据CSI-RS计算CSI,最后再进行CSI report的发送 ,下面就根据38.214 38.211中的描述具体看下CSI-RS transmit和CSI report触发的相关流程。

 

periodic或semi-persistent CSI-RS resource transmit time

57b780eda9454094a7c53a4aaba30a05.png

当CSI-ResourceSet配置为periodic或semi-persistent时,CSI-RS的发送时隙满足上面的公式,Tcsi-rs为配置周期,单位是时隙,Toffset是时隙偏移;periodic CSI-RS发送不需要触发,配置上基站就可以参照配置的周期进行CSI-RS 传输;半持续CSI-RS发送时隙,除了满足周期配置外,还要通过MAC CE激活或去激活;aperiodic CSI-RS,则会通过DCI 0_1/0_2 CSI request 触发;CSI-RS的传输要对应DL symbol。

 

periodic或semi-persistent CSI report on PUCCH send time

9e72f84bddf6488fbf1a97b8180a4677.png

对于periodic/semi-persistent CSI report on PUCCH触发后,发送帧号和时隙number应该满足上面的公式,其中Tcsi-rs为配置周期,单位是时隙,Toffset是时隙偏移,如果periodicityAndOffset slots40 : 5 ,那Tcsi-rs=40 slot,Toffset=5。

periodic CSI-RS and periodic report图示如下。

4b7cfafb0a2f4b2f94f85f17fb815dfe.png

semi-persistent CSI report on PUSCH send time

a6d706d0e63a461e871cf49776798812.png

对于semi-persistent CSI report on PUSCH,同样需要公式辅助确认,其中n_start_f和n_start_s,f分别是根据DCI 确定的激活 semi-persistent PUSCH initial传输的SFN 和时隙号;n_f和n_u_s,f分别对应CSI report 实际传输的SFN 和slot number;T_CSI由上图中的RRC参数reportSlotConfig提供。

semi-persistent或aperiodic CSI report on PUSCH需要DCI 0_1/0_2触发,且要确定生效的时隙偏移。

3a9916abb12d4ccc8d38ecfff47ac38a.png

semi-persistent或aperiodic CSI report on PUSCH,可以通过reportSlotOffsetListDCI-0-2/reportSlotOffsetListDCI-0-1 配置slot offset,如果没有上述配置则就由reportSlotOffsetListDCI提供。

semi-persistent或aperiodic CSI report on PUSCH的触发由DCI0_1/0_2中的CSI request 字段激活,根据Time domain resource assignment结合reportSlotOffsetListDCI或者pusch-TimeDomainAllocationList确定PUSCH 的时隙偏移K2及SLIV,具体描述如下。

3ec3ad049d6e4294a6332b2943af9e42.png

UE需要通过PUSCH发送CSI report(没有TB传输)时,要根据DCI field CSI request确定触发的具体report 配置,还要根据Time domain resource assignment value m结合reportSlotOffsetList对应的位置共同决定,如果同时触发了N_Rep个CSI report,要取各个report配置的最大的K2值。

bcc9a604e65747808f4e79f4d7220ddc.png

R16版本需要根据是否有配置载波聚合时隙偏移进行了区分。如果 UE 被配置参数 ca-SlotOffset (载波聚合时隙偏移),Ks (PDCCH和PDSCH 的时隙偏移)由上图中的那个长公式决定;否则的话,Ks 仍然由R15中的原公式决定。

34cc7cfc215c402a97b1bbfa41af02fc.png

a631c9a498ed4184a7745e48dad75cdd.png UE有TB要通过PUSCH 发送时(不管发不发CSI report),UE要根据DCI 中的time domain resource assignment field和和pusch-TimeDomainAllocationList去确定K2 ,SLIV,这时候就不参考reportSlotOffsetListDCI的配置。

semi-persistent或aperiodic CSI report on PUSCH 根据reportSlotOffsetListDCI的触发图示如下。

242dbd46bf5543d7a5df81d911004cbf.png

上述过程还涉及到DCI field CSI request的大小及如何根据CSI request的value确定要触发哪个参考信号的问题,这些内容协议中都有规定,不过比较分散且杂乱。先看aperidic CSI report。

 

aperiodic CSI report

aperiodic CSI report只能用aperiodic CSI-RS 资源,因为aperiodic配置中不需要发送周期等参数,触发一次就结束,所以会涉及到收到DCI后CSI-RS传输的时隙偏移的确定及CSI report 发送的时隙偏移的确定等问题。

8c18d77f40c546d8b93ac6e47b28704a.png

aperiodic CSI report通过DCI 0_1/0_2 中的field CSI request触发,CSI request 的大小由reportTriggerSize控制,大小可以配置为0~6bits,假如reportTriggerSize =5bits,那收到DCI 后,CSI request就取5bits。

ebb7042e82b648d5bc7ff7116e8b45ed.png

RRC层会在CSI-AperiodicTriggerStateList中配置要触发的非周期CSI report config,如果配置的CSI report资源个数比reportTriggerSize能表示的资源多,那就需要Aperiodic CSI Trigger State Subselection MAC CE先选择一部分CSI report config资源,然后再根据DCI 0_1/0_2 中的field CSI request 依次在MAC CE选择的CSI report config资源中确定;否则就根据DCI 0_1/0_2 中的field CSI request的指示,直接在CSI-AperiodicTriggerStateList确定要触发的非周期CSI-report config 资源。

如果有收到Aperiodic CSI Trigger State Subselection MAC CE,且UE要在slot n传输对应的PUCCH HARQ-ACK,那UE要在slot n+3Nsubframe,u_slot+1才能激活根据DCI选择的CSI report config。

 

CSI-AperiodicTriggerStateList 图示如下

5bab273efe5c4f6297b9f28ce86426ed.png

Aperiodic CSI Trigger State Subselection MAC CE

Ti代表的就是aperiodicTriggerStateList中要和DCI field CSI request关联的csi report config,Ti=1就代表对应的report config要映射到CSI request中,T0代表aperiodicTriggerStateList中的第一个配置,T1代表第二个,依次类推。

7562d9d3a4404541811af8505c7eae39.png

aperiodic CSI reporting相关联的aperiodic CSI-RS的发送也需要确定对应的时隙偏移进行发送,其时隙偏移值由RRC层参数aperiodicTriggering Offset/aperiodicTriggeringOffset-r16提供,配置结构如下。

bba81c6574914671987f4a2a1ab324ce.png

aperiodicTriggeringOffset/aperiodicTriggeringOffset-r16,代表收到触发aperiodic NZP CSI-RS resource的DCI与要传输CSI-RS resource的时隙偏移。

aperiodicTriggeringOffset-r16对应的值对应的单位就是slot;而aperiodicTriggeringOffset有些不一样,value 0代表 0 slot;value 1代表 1 slot;value 2代表 2 slot;value 3代表 3 slot;value 4代表 4 slot;value 5代表 16 slot;value 6代表 24 slot。

992f9dcd1fa3414fad20b275a4f799fa.png

更具体的,

当minimunSchedulingOffsetK0和minimunSchedulingOffsetK2没有配置且对应的CSI-RS resource在TCI states配置中没有qcl-Type =typeD的关系时,CSI-RS触发的时隙偏移固定为0;其他情况需要根据上面的公式确定,不考虑unsync CA场景时,时隙偏移Ks=n+X,n代表收到触发DCI的时隙,X就是根据aperiodicTriggeringOffset/aperiodicTriggeringOffset-r16 确定的时隙值;触发的aperiodic CSI report config 中可能也有配置干扰测量资源,这时候CSI-IM的传输时隙偏移,与信道测量NZP CSI-RS的时隙偏移相同。

R16 新增PDCCH和CSI-RS具有不同SCS的场景,spec上的描述与上面这部分稍微有点区别,这里就不贴了,详见38.214 5.2.1.5.1a。

aperiodic CSI report on PUSCH根据上述描述整理的触发图示如下。

8e4ec905abdc4d29899cae2ba9c41b9d.png

Semi-persistent CSI/Semi-persistent CSI-RS

Semi-Persistent CSI report 对应的CSI-RS resource可以是periodic或者semi-persistent, semi-persistent CSI-RS resource 先通过MAC CE激活后才能传输,然后UE才能进行CSI测量,进而report CSI,与semi-persistent CSI-RS resource触发相关的MAC CE就是SP CSI-RS/CSI-IM Resource Set Activation/Deactivation MAC CE。

dfa474ee21284a78b4a76c8504714308.png

CSI resource对应的resourceType=semiPersistent时,网络端会通过SP CSI-RS/CSI-IM Resource Set Activation/Deactivation MAC CE进行激活/去激活。当UE收到激活MAC CE后且UE要在slot n传输对应的PUCCH HARQ-ACK,对应的CSI-RS/CSI-IM resource要在slot n+3N_subframe,u_slot+1 才能生效进行传输。

e2abe901a9be443180752d43721f5a29.png

如果收到去激活MAC CE,对于激活的CSI-RS/CSI-IM 资源,UE要在slot n传输deactive 命令的PUCCH HARQ-ACK时,同样要在slot n+3N_subframe,u_slot+1 去激活命令才能生效。

SP CSI-RS/CSI-IM Resource Set Activation/Deactivation MAC CE结构如下。

5fb6e155a281481d81339887e71e55f4.png

2ebf329f5bac4779a2ce1d05b7c061fb.png

如果semi-persistent CSI-RS/CSI-IM resource或semi-persistent ZP CSI-RS resource set处于激活状态,此时没有收到去激活命令,那只要相关的DL BWP是激活的状态,这些配置就处于激活状态。如果carrier被去激活,那对应的semi-persistent CSI-RS/CSI-IM resource,semi-persistent CSI reporting on PUCCH, semi-persistent SRS, semi-persistent ZP CSI-RS resource set也会去激活。

semi-persistent CSI-RS resource经过上面的操作激活进行传输后,就需要进行report,下面看下semi-persistent report,分为on PUSCH和PUCCH。

 

semi-persistent reporting on PUSCH

898bfc39db1f439486c2989f40193b93.png

UE需要通过decode SP-CSI-RNTI加扰的DCI 0_1/0_2 ,根据field CSI request结合RRC层配置的SemiPersistentOnPUSCH-TriggerStateList,确定触发的具体CSI-reportConfigId,配置路径如下。

f1720ad433ac48d8a45e825817eaed8d.png

770de1a0effd417ab75edb87437f3da4.png 

对于SemiPersistentOnPUSCH场景,DCI 是由SP-CSI-RNTI加扰的,DCI 0_1/0_2 field CSI request field 需要与CSI-SemiPersistentOnPUSCH-TriggerStateList中的CSI report config进行映射,例如CSI request=0对应TriggerStateList中的第一个CSI reportconfig。SP-CSI-RNTI加扰的DCI某些参数还要满足要求才能认为是有效的激活或去激活命令,例如SP-CSI-RNTI加扰的DCI满足Table5.2.1.5.2-1的配置代表要激活对应的semi-persistent CSI,如果满足Table 5.2.1.5.2-2代表要去激活对应的semi-persistent CSI。

SP-CSI-RNTI加扰的DCI 经过对应table匹配,认定是无效DCI,此时就将其认定为CRC fail的DCI 丢掉。

e4f8ca5ea46f42638828907cfa51d280.png

semi-persistent reporting on PUSCH 流程图示如下。

2a7a09f60b534336a4c9e7022ecd4e3b.png

semi-persistent reporting on PUCCH

84682365c4e7400581426fd5b8256f78.png

网络侧会通过SP CSI reporting on PUCCH Activation/Deactivation MAC CE激活对应的semi-persistent CSI report配置。如果有收到MAC CE,UE要在slot n传输对应的PUCCH HARQ-ACK,那UE要在slot n+3Nsubframe,u_slot+1才能应用选择的CSI report config。

 

SP CSI reporting on PUCCH Activation/Deactivation MAC CE的结构如下。

e6ec9ba1d6ed4dfb8930faead6655c83.png

其中Serving cell ID和BWP ID分别代表MAC CE要应用的服务小区和BWP id,Si代表要激活或去激活的SP CSI report config,例如S0=1代表要激活CSI-reportConfig中reportConfigType=semiPersistentOnPUCCH的最小的CSI-ReportConfigID;S1=0代表要去激活CSI-reportConfig中reportConfigType=semiPersistentOnPUCCH的第二小的CSI-ReportConfigID;以此类推。

semiPersistentOnPUCCH配置结构如下

3d1500d84839445eb34d56107f646df5.png

semi-persistent reporting on PUCCH 触发图示如下。

43c77130e15a4335804db5567ad9ecb2.png

至此各种CSI resource和CSI report的触发及发送流程的描述基本就结束了,最后再看下CSI report上报粒度的相关描述。

59d5e68f7b41460481f19ae413986459.png

根据BWP大小和subbandsize参数,可以将BWP分成多个subband,然后按照要求根据subband进行CSI report上报,如上table 5.2.1.4-2 所示。

b9afb91a1006440284a9572d472046b3.png

CSI-ReportConfig中的reportFreqConfiguration用于指示CSI report的freq 粒度。CSI report setting会将BWP分成不同的subband;其中csi-ReporttingBand代表CSI report对应的连续的或非连续的subband子集;

当csi-ReportingBand有suband配置时,每个RB上的每个port的频域密度不能低于要测量的CSI-RS的频域密度,就是subband中必须包含所有天线port的CSI-RS resource。

30af6bc3561444c192290505f77e618d.png

实网环境下根据subband size将BWP分割成subband时,可能第一个和最后一个subband的大小不能满足size,这种情况下要根据上面的公式分别确定第一个和最后一个subband的size;如果配置的BWP 大小少于24个PRBs,CSI reporting就要进行wideband 上报,此时对应的codebookType要配置成typeI-SinglePanel。

ab5722af70004cbbabdfa01b54820c06.png

根据CSI report的配置,在频域上要按照宽带或子带进行测量和上报,UE测量所需要时间及测量上报的payload大小会相差很大。

由此协议中根据reportQuanlity的不同分为wideband CSI report和subband CSI report,即满足上述条件的就以wideband 上报,其他情况按照划分的subband上报。

最后看一个CSI report subband划分的例子。

d2692eaa55774bdaaf4014e5a2fecf33.png

通过上面的配置可以确定CSI-reportconfigid 0是 periodic CSI report,对应的resource type也是periodic,该CSI report通过Pucch resource 40发送 ,channel测量和interference测量resource 按照index可以确定分别对应到CSI-RS resource 28和CSI-IM resouce 0。

670940c9f51e4ac8ad107c67a9e11663.png

csi-ReportingBand对应 subbands18 : '11111111 11111111 11'B,即将BWP分成了18个subband,再看BWP 的配置。

b2f96f1514684d36826e73399dafdcc9.png

根据locationAndBandwidth 1099,通过RIV 计算BWP大小对应的是0~273个RB。

6d1ffdc5e51748e7abbee241adc8e6ae.png

根据BWP 273 PRBs的信息,Subband size 是 16 or 32  二选一;subbandSize取的是value1  则 说明应该选16 个prb作为subband size。

csi-ReportingBand subbands18 : '11111111 11111111 11'B  有18个subbands 每个subband是16个prb,18×16 =288 超过了整个BWP 的范围273,其实第一个subband和最后一个subband 可能不是16个prb,划分规则如下:

c718a7b59d1746228ce3813ec7ab8cf4.png

N_SB_PRB 就是subband size=16 ,

这里BWP 起始RB index是0  总共273个PRB 则第一个subband包含的prb个数是16-(0 mod 16)=16;最后一个subband的prb个数是  (0+273)mod 16 =1,即最后一个subband的prb个数是1 ,最终subband划分的频域图示如下。 

77ed4ceaa5214c16aa373ccf81afc95e.png微信同步更新欢迎关注同名modem协议笔记

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30497.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cookie和Session的工作流程是什么样的?5min学懂:简易用户登录(前端+后端+数据库)

目录 前言 一、Cookie 1.1、Cookie从哪里来? 1.2、Cookie到哪里去? 二、Session 2.1、什么是sessionId? 三、Cookie和Session的区别 四、Cookie和Session的具体工作流程 五、代码实现用户登录 5.1、核心方法 5.2、代码 前言 想要了解Cookie和…

【设计模式】桥接模式(Bridge Pattern)

桥接模式属于结构型模式,主要解决因业务增长时滥用继承而导致的**“类爆炸”问题。桥接模式将一个树型的整体继承结构替换为由抽象的类(抽象化角色)组成的抽象部分和由实现接口(实现化角色)与实现类(具体实…

无法访问mybatis.dto.StudengInVO-使用maven编译报错

一、问题由来 最近一次拉代码后,合并代码然后进行编译时出现一个问题,使用maven在进行编译的时候报一个错,无法访问mybatis.dto.StudengInVO。 突然出现这个错误让自己感觉很奇怪,开发工具已经使用了好几个月,项目也已…

SSM毕设项目 - 基于SSM的汉服文化平台网站(含源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.3 系统结构设计4 项目获取1 项目简介 Hi,各位同学好呀,这里是M学姐! 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品,【基于SSM的汉服文化…

(十三)Spring之JdbcTemplate

文章目录环境新增、删除与修改数据新增修改删除查询一个查询一个对象查询一个值查询多个对象批量操作批量添加批量修改批量删除使用回调函数使用德鲁伊连接池上一篇:(十二)Spring IoC注解式开发JdbcTemplate是Spring提供的一个JDBC模板类&…

高阶数据结构:二叉搜索树

本篇主要是在初级数据结构中介绍的二叉树的提升,了解二叉搜索树的特性。 文章目录 一、二叉搜索树的概念二、二叉搜索树操作 1、二叉搜索树的查找2、二叉搜索树的插入3、二叉搜索树的删除三、二叉搜索树的实现四、二叉搜索树的应用五、关于二叉树进阶面试题一、二叉…

大衣哥又有喜事了,孟文豪新作《克什克腾的眼泪》,是给他写的吗

农民歌唱家大衣哥又出新歌啦! 就在大衣哥被谷传民起诉不久,互联网上面又传出新消息,继《火火的情怀》之后,大衣哥的新歌《新时代的新农民》,又要和大家见面了。很多人不明白,大衣哥不过是一个农民歌唱家&am…

Java中的反射,枚举和Lambda表达式

一. 反射 1. 反射的概述 2. 反射的使用 反射常用的类 通过反射获取Class对象 获得Class类相关的方法 使用反射创建实例对象 使用反射获取实例对象中的构造方法 通过反射获取实例对象的属性 通过反射获取实例对象的方法 3. 反射的优缺点 二. 枚举 1…

Graalvm 安装和静态编译

文章目录1、下载2、graalvm安装3、native-image工具安装3.1 安装native-image3.2 安装C编译工具4、java编译成二进制exe4.1、普通的java命令行应用4.2、Swing应用编译4.3、使用maven插件静态编译4.4、javafx应用编译1、下载 文件下载:https://www.graalvm.org/down…

[附源码]计算机毕业设计JAVA剧本杀门店管理系统-

[附源码]计算机毕业设计JAVA剧本杀门店管理系统- 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myb…

OBS-VirtualCam OBS的虚拟摄像头插件

OBS-VirtualCam 是OBS的一个虚拟摄像头插件,可以将OBS中的内容提供给一个虚拟摄像头,这样其它软件就可以使用这个内容了,这里试试这个插件功能。 1. 下载obs并安装 登录OBS Studio网站,下载windows版, 下载完成后并安装…

栈的基本操作

目录 一、什么是栈? 二、用单链表实现栈 三、用顺序表数组实现栈 一、什么是栈? 栈(stack)是一个先进后出(FILO-First In Last Out)的有序列表。 主要方法:入栈(push)…

SCA算法优化脉冲耦合神经网络的图像自动分割(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

【C语言】初识指针(终篇)

摸了一手秀发,发现还在~ 目录 1、指针运算 1.1指针加减整数 1.2指针减指针 1.3指针关系运算 2、二级指针 3、指针和数组 4、指针数组 前言: 大家好,我是拳击哥。上一期我们讲到了指针类型,指针的访问步长,野指针…

Redis数据类型总结

文章目录一、5种数据类型二、常用指令汇总三、应用汇总提示:以下是本篇文章正文内容,Redis系列学习将会持续更新 一、5种数据类型 Redis 数据存储格式:  ● redis 自身是一个 Map ,其中所有的数据都是采用 key : value 的形式存储。  ● 数…

如何设计用户体验测试用例

一、 什么是用户体验 UE: User Experience 用户体验。 用户体验是指用户在使用产品过程中的个人主观感受,即用户在使用一个产品之前、使用过程中、使用后的整体感受,包括行为、情感、喜好、生理和心里反应、成就等各个方面。 通俗的讲用户体…

希望所有计算机学生都知道这些宝藏网站

GitHub GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。 作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已…

数据结构与算法(五) 动态规划

这篇文章来讲动态规划(Dynamic Programming),这是一个在面试中很经常出现的题型 1、本质 之前说过,解决算法问题的主流思路就是穷举搜索,即遍历整个搜索空间,找到给定问题的解 只是在某些场景下&#xff…

Python学习 - 异常处理

Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855 Python学习 - 数据类型:https://blog.csdn.net/wanzijy/article/details/125341568 Python学习 - 流程控制:https://blog.csdn.net/wanzijy/article/details…

3dmax网渲云渲染哪个平台费用低?一张图要多少钱多长时间?怎么收费

话说现在的设计师应该没有不知道云渲染的吧?毕竟比起本地渲,云渲染不占本地资源,一次能渲很多张,方便又快捷,有谁不喜欢呢!那么这么多的云渲染平台用哪个呢?今天我们就以主流的4个平台为例&…