1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_ciimport { BaseElement, element } from '../../../base-ui/BaseElement'; 17fb726d48Sopenharmony_ciimport { SpCheckDesBox } from './SpCheckDesBox'; 18fb726d48Sopenharmony_ciimport { LitCheckBox, LitCheckBoxChangeEvent } from '../../../base-ui/checkbox/LitCheckBox'; 19fb726d48Sopenharmony_ciimport { LitRadioGroup } from '../../../base-ui/radiobox/LitRadioGroup'; 20fb726d48Sopenharmony_ciimport { info, log } from '../../../log/Log'; 21fb726d48Sopenharmony_ciimport { LitSlider } from '../../../base-ui/slider/LitSlider'; 22fb726d48Sopenharmony_ciimport LitSwitch from '../../../base-ui/switch/lit-switch'; 23fb726d48Sopenharmony_ciimport { SpProbesConfigHtml } from './SpProbesConfig.html'; 24fb726d48Sopenharmony_ci 25fb726d48Sopenharmony_ci@element('probes-config') 26fb726d48Sopenharmony_ciexport class SpProbesConfig extends BaseElement { 27fb726d48Sopenharmony_ci private hitrace: SpCheckDesBox | undefined; 28fb726d48Sopenharmony_ci private _traceConfig: HTMLElement | undefined; 29fb726d48Sopenharmony_ci private _memoryConfig: HTMLElement | undefined | null; 30fb726d48Sopenharmony_ci private _abilityConfig: HTMLElement | undefined | null; 31fb726d48Sopenharmony_ci private ftraceBufferSizeResult: HTMLDivElement | null | undefined; 32fb726d48Sopenharmony_ci private ftraceSlider: LitSlider | null | undefined; 33fb726d48Sopenharmony_ci 34fb726d48Sopenharmony_ci private ftraceBuffSizeResultInput: HTMLInputElement | null | undefined; 35fb726d48Sopenharmony_ci 36fb726d48Sopenharmony_ci set startSamp(allocationStart: boolean) { 37fb726d48Sopenharmony_ci if (allocationStart) { 38fb726d48Sopenharmony_ci this.setAttribute('startSamp', ''); 39fb726d48Sopenharmony_ci } else { 40fb726d48Sopenharmony_ci this.removeAttribute('startSamp'); 41fb726d48Sopenharmony_ci } 42fb726d48Sopenharmony_ci } 43fb726d48Sopenharmony_ci 44fb726d48Sopenharmony_ci get startSamp(): boolean { 45fb726d48Sopenharmony_ci return this.hasAttribute('startSamp'); 46fb726d48Sopenharmony_ci } 47fb726d48Sopenharmony_ci 48fb726d48Sopenharmony_ci get traceConfig(): string[] { 49fb726d48Sopenharmony_ci let selectedTrace = this._traceConfig?.querySelectorAll<SpCheckDesBox>('check-des-box[checked]') || []; 50fb726d48Sopenharmony_ci let values = []; 51fb726d48Sopenharmony_ci for (const litCheckBoxElement of selectedTrace) { 52fb726d48Sopenharmony_ci values.push(litCheckBoxElement.value); 53fb726d48Sopenharmony_ci } 54fb726d48Sopenharmony_ci if (this.hitrace && this.hitrace.checked) { 55fb726d48Sopenharmony_ci values.push(this.hitrace.value); 56fb726d48Sopenharmony_ci } 57fb726d48Sopenharmony_ci info('traceConfig is :', values); 58fb726d48Sopenharmony_ci return values; 59fb726d48Sopenharmony_ci } 60fb726d48Sopenharmony_ci 61fb726d48Sopenharmony_ci get ftraceBufferSize(): number { 62fb726d48Sopenharmony_ci if (this.ftraceBufferSizeResult?.hasAttribute('percent')) { 63fb726d48Sopenharmony_ci return Number(this.ftraceBufferSizeResult?.getAttribute('percent')); 64fb726d48Sopenharmony_ci } 65fb726d48Sopenharmony_ci return 20480; 66fb726d48Sopenharmony_ci } 67fb726d48Sopenharmony_ci 68fb726d48Sopenharmony_ci get memoryConfig(): string[] { 69fb726d48Sopenharmony_ci let values = []; 70fb726d48Sopenharmony_ci let selectedMemory = this._memoryConfig?.querySelectorAll<SpCheckDesBox>( 71fb726d48Sopenharmony_ci 'check-des-box[checked]' 72fb726d48Sopenharmony_ci ) as NodeListOf<SpCheckDesBox>; 73fb726d48Sopenharmony_ci for (const litCheckBoxElement of selectedMemory) { 74fb726d48Sopenharmony_ci values.push(litCheckBoxElement.value); 75fb726d48Sopenharmony_ci } 76fb726d48Sopenharmony_ci log(`memoryConfig size is :${values.length}`); 77fb726d48Sopenharmony_ci return values; 78fb726d48Sopenharmony_ci } 79fb726d48Sopenharmony_ci 80fb726d48Sopenharmony_ci get recordAbility(): boolean { 81fb726d48Sopenharmony_ci let selectedMemory = this._abilityConfig?.querySelectorAll<SpCheckDesBox>( 82fb726d48Sopenharmony_ci 'check-des-box[checked]' 83fb726d48Sopenharmony_ci ) as NodeListOf<SpCheckDesBox>; 84fb726d48Sopenharmony_ci return selectedMemory.length > 0; 85fb726d48Sopenharmony_ci } 86fb726d48Sopenharmony_ci 87fb726d48Sopenharmony_ci get traceEvents(): string[] { 88fb726d48Sopenharmony_ci let values = []; 89fb726d48Sopenharmony_ci if (this.hitrace && this.hitrace.checked) { 90fb726d48Sopenharmony_ci let parent = this.shadowRoot?.querySelector('.user-events') as Element; 91fb726d48Sopenharmony_ci const siblingNode = parent?.querySelectorAll<LitCheckBox>('lit-check-box[name=userEvents][checked]'); 92fb726d48Sopenharmony_ci for (const litCheckBoxElement of siblingNode) { 93fb726d48Sopenharmony_ci values.push(litCheckBoxElement.value); 94fb726d48Sopenharmony_ci } 95fb726d48Sopenharmony_ci } 96fb726d48Sopenharmony_ci log(`traceEvents size is :${values.length}`); 97fb726d48Sopenharmony_ci return values; 98fb726d48Sopenharmony_ci } 99fb726d48Sopenharmony_ci 100fb726d48Sopenharmony_ci get hilogConfig(): string[] { 101fb726d48Sopenharmony_ci let logLevel = this.shadowRoot?.getElementById('logLevel') as LitCheckBox; 102fb726d48Sopenharmony_ci if (logLevel.checked) { 103fb726d48Sopenharmony_ci let logRadio = this.shadowRoot?.getElementById('log-radio') as LitRadioGroup; 104fb726d48Sopenharmony_ci return logRadio.value; 105fb726d48Sopenharmony_ci } else { 106fb726d48Sopenharmony_ci return []; 107fb726d48Sopenharmony_ci } 108fb726d48Sopenharmony_ci } 109fb726d48Sopenharmony_ci 110fb726d48Sopenharmony_ci private initTraceConfigList(): void { 111fb726d48Sopenharmony_ci this._traceConfig = this.shadowRoot?.querySelector('.trace-config') as HTMLElement; 112fb726d48Sopenharmony_ci traceConfigList.forEach((configBean) => { 113fb726d48Sopenharmony_ci let checkDesBox = new SpCheckDesBox(); 114fb726d48Sopenharmony_ci checkDesBox.value = configBean.value; 115fb726d48Sopenharmony_ci checkDesBox.checked = configBean.isSelect; 116fb726d48Sopenharmony_ci checkDesBox.des = configBean.des; 117fb726d48Sopenharmony_ci checkDesBox.addEventListener('onchange', () => { 118fb726d48Sopenharmony_ci this.dispatchEvent(new CustomEvent('addProbe', {})); 119fb726d48Sopenharmony_ci }); 120fb726d48Sopenharmony_ci this._traceConfig?.appendChild(checkDesBox); 121fb726d48Sopenharmony_ci }); 122fb726d48Sopenharmony_ci } 123fb726d48Sopenharmony_ci 124fb726d48Sopenharmony_ci private initMemoryConfigList(): void { 125fb726d48Sopenharmony_ci this._memoryConfig = this.shadowRoot?.querySelector('.memory-config'); 126fb726d48Sopenharmony_ci memoryConfigList.forEach((configBean) => { 127fb726d48Sopenharmony_ci let checkDesBox = new SpCheckDesBox(); 128fb726d48Sopenharmony_ci checkDesBox.value = configBean.value; 129fb726d48Sopenharmony_ci checkDesBox.checked = configBean.isSelect; 130fb726d48Sopenharmony_ci checkDesBox.des = configBean.des; 131fb726d48Sopenharmony_ci checkDesBox.addEventListener('onchange', () => { 132fb726d48Sopenharmony_ci this.dispatchEvent(new CustomEvent('addProbe', {})); 133fb726d48Sopenharmony_ci }); 134fb726d48Sopenharmony_ci this._memoryConfig?.appendChild(checkDesBox); 135fb726d48Sopenharmony_ci }); 136fb726d48Sopenharmony_ci } 137fb726d48Sopenharmony_ci 138fb726d48Sopenharmony_ci private initAbilityConfigList(): void { 139fb726d48Sopenharmony_ci this._abilityConfig = this.shadowRoot?.querySelector('.ability-config'); 140fb726d48Sopenharmony_ci abilityConfigList.forEach((configBean) => { 141fb726d48Sopenharmony_ci let checkDesBox = new SpCheckDesBox(); 142fb726d48Sopenharmony_ci checkDesBox.value = configBean.value; 143fb726d48Sopenharmony_ci checkDesBox.checked = configBean.isSelect; 144fb726d48Sopenharmony_ci checkDesBox.des = configBean.des; 145fb726d48Sopenharmony_ci checkDesBox.addEventListener('onchange', () => { 146fb726d48Sopenharmony_ci this.dispatchEvent(new CustomEvent('addProbe', {})); 147fb726d48Sopenharmony_ci }); 148fb726d48Sopenharmony_ci this._abilityConfig?.appendChild(checkDesBox); 149fb726d48Sopenharmony_ci }); 150fb726d48Sopenharmony_ci } 151fb726d48Sopenharmony_ci 152fb726d48Sopenharmony_ci private initHiTraceConfigList(): void { 153fb726d48Sopenharmony_ci this.hitrace = this.shadowRoot?.getElementById('hitrace') as SpCheckDesBox; 154fb726d48Sopenharmony_ci let parent = this.shadowRoot?.querySelector('.user-events') as Element; 155fb726d48Sopenharmony_ci hiTraceConfigList.forEach((hitraceConfig: unknown) => { 156fb726d48Sopenharmony_ci let litCheckBox = new LitCheckBox(); 157fb726d48Sopenharmony_ci litCheckBox.setAttribute('name', 'userEvents'); 158fb726d48Sopenharmony_ci //@ts-ignore 159fb726d48Sopenharmony_ci litCheckBox.value = hitraceConfig.value; 160fb726d48Sopenharmony_ci //@ts-ignore 161fb726d48Sopenharmony_ci litCheckBox.checked = hitraceConfig.isSelect; 162fb726d48Sopenharmony_ci litCheckBox.addEventListener('change', (ev: CustomEventInit<LitCheckBoxChangeEvent>) => { 163fb726d48Sopenharmony_ci let detail = ev.detail; 164fb726d48Sopenharmony_ci if (this.hitrace?.checked === false) { 165fb726d48Sopenharmony_ci this.hitrace.checked = detail!.checked; 166fb726d48Sopenharmony_ci } 167fb726d48Sopenharmony_ci if (!detail!.checked && this.hitrace?.checked === true) { 168fb726d48Sopenharmony_ci let hasChecked = false; 169fb726d48Sopenharmony_ci const nodes = parent?.querySelectorAll<LitCheckBox>('lit-check-box[name=userEvents]'); 170fb726d48Sopenharmony_ci nodes.forEach((vv) => { 171fb726d48Sopenharmony_ci if (vv.checked) { 172fb726d48Sopenharmony_ci hasChecked = true; 173fb726d48Sopenharmony_ci } 174fb726d48Sopenharmony_ci }); 175fb726d48Sopenharmony_ci if (!hasChecked) { 176fb726d48Sopenharmony_ci this.hitrace.checked = hasChecked; 177fb726d48Sopenharmony_ci } 178fb726d48Sopenharmony_ci } 179fb726d48Sopenharmony_ci this.dispatchEvent(new CustomEvent('addProbe', {})); 180fb726d48Sopenharmony_ci }); 181fb726d48Sopenharmony_ci parent.append(litCheckBox); 182fb726d48Sopenharmony_ci }); 183fb726d48Sopenharmony_ci } 184fb726d48Sopenharmony_ci 185fb726d48Sopenharmony_ci initElements(): void { 186fb726d48Sopenharmony_ci this.ftraceBuffSizeResultInput = this.shadowRoot?.querySelector('.ftrace-buff-size-result') as HTMLInputElement; 187fb726d48Sopenharmony_ci this.ftraceBuffSizeResultInput!.addEventListener('keydown', (ev: unknown) => { 188fb726d48Sopenharmony_ci //@ts-ignore 189fb726d48Sopenharmony_ci if (ev.key === '0' && ev.target.value.length === 1 && ev.target.value === '0') { 190fb726d48Sopenharmony_ci //@ts-ignore 191fb726d48Sopenharmony_ci ev.preventDefault(); 192fb726d48Sopenharmony_ci } 193fb726d48Sopenharmony_ci }); 194fb726d48Sopenharmony_ci this.initTraceConfigList(); 195fb726d48Sopenharmony_ci this.initMemoryConfigList(); 196fb726d48Sopenharmony_ci this.initAbilityConfigList(); 197fb726d48Sopenharmony_ci this.initHiTraceConfigList(); 198fb726d48Sopenharmony_ci this.bufferSizeSliderInit(); 199fb726d48Sopenharmony_ci let litSwitch = this.shadowRoot?.querySelector('lit-switch') as LitSwitch; 200fb726d48Sopenharmony_ci this.ftraceSlider = this.shadowRoot?.querySelector<LitSlider>('#ftrace-buff-size-slider'); 201fb726d48Sopenharmony_ci litSwitch.addEventListener('change', (event: unknown) => { 202fb726d48Sopenharmony_ci //@ts-ignore 203fb726d48Sopenharmony_ci let detail = event.detail; 204fb726d48Sopenharmony_ci if (detail!.checked) { 205fb726d48Sopenharmony_ci this.unDisable(); 206fb726d48Sopenharmony_ci } else { 207fb726d48Sopenharmony_ci this.disable(); 208fb726d48Sopenharmony_ci } 209fb726d48Sopenharmony_ci }); 210fb726d48Sopenharmony_ci } 211fb726d48Sopenharmony_ci 212fb726d48Sopenharmony_ci private bufferSizeSliderInit(): void { 213fb726d48Sopenharmony_ci let bufferSizeSlider = this.shadowRoot?.querySelector<LitSlider>('#ftrace-buff-size-slider') as LitSlider; 214fb726d48Sopenharmony_ci this.ftraceBufferSizeResult = this.shadowRoot?.querySelector('#ftrace-buff-size-div') as HTMLDivElement; 215fb726d48Sopenharmony_ci bufferSizeSlider.sliderStyle = { 216fb726d48Sopenharmony_ci minRange: 2048, 217fb726d48Sopenharmony_ci maxRange: 307200, 218fb726d48Sopenharmony_ci defaultValue: '204800', 219fb726d48Sopenharmony_ci resultUnit: 'KB', 220fb726d48Sopenharmony_ci stepSize: 2, 221fb726d48Sopenharmony_ci lineColor: 'var(--dark-color3,#46B1E3)', 222fb726d48Sopenharmony_ci buttonColor: '#999999', 223fb726d48Sopenharmony_ci }; 224fb726d48Sopenharmony_ci let bufferSizeSliderParent = bufferSizeSlider!.parentNode as Element; 225fb726d48Sopenharmony_ci let buffSizeResult = this.shadowRoot?.querySelector('.ftrace-buff-size-result') as HTMLInputElement; 226fb726d48Sopenharmony_ci buffSizeResult!.onkeydown = (ev): void => { 227fb726d48Sopenharmony_ci // @ts-ignore 228fb726d48Sopenharmony_ci if (ev.key === '0' && ev.target.value.length === 1 && ev.target.value === '0') { 229fb726d48Sopenharmony_ci ev.preventDefault(); 230fb726d48Sopenharmony_ci } 231fb726d48Sopenharmony_ci }; 232fb726d48Sopenharmony_ci buffSizeResult.value = bufferSizeSlider.sliderStyle.defaultValue; 233fb726d48Sopenharmony_ci bufferSizeSlider.addEventListener('input', () => { 234fb726d48Sopenharmony_ci buffSizeResult.parentElement!.classList.remove('border-red'); 235fb726d48Sopenharmony_ci if (this.ftraceBufferSizeResult!.hasAttribute('percent')) { 236fb726d48Sopenharmony_ci buffSizeResult.value = Number(this.ftraceBufferSizeResult!.getAttribute('percent')).toString(); 237fb726d48Sopenharmony_ci } else { 238fb726d48Sopenharmony_ci buffSizeResult.value = '20480'; 239fb726d48Sopenharmony_ci } 240fb726d48Sopenharmony_ci }); 241fb726d48Sopenharmony_ci bufferSizeSliderParent.setAttribute('percent', '20480'); 242fb726d48Sopenharmony_ci buffSizeResult.style.color = 'var(--dark-color1,#000000)'; 243fb726d48Sopenharmony_ci buffSizeResult.addEventListener('input', () => { 244fb726d48Sopenharmony_ci this.ftraceBuffSizeResultInputHandler(buffSizeResult, bufferSizeSliderParent, bufferSizeSlider); 245fb726d48Sopenharmony_ci }); 246fb726d48Sopenharmony_ci buffSizeResult.addEventListener('focusout', () => { 247fb726d48Sopenharmony_ci if (buffSizeResult.value.trim() === '') { 248fb726d48Sopenharmony_ci buffSizeResult.parentElement!.classList.remove('border-red'); 249fb726d48Sopenharmony_ci bufferSizeSliderParent.setAttribute('percent', '20480'); 250fb726d48Sopenharmony_ci buffSizeResult.value = '20480'; 251fb726d48Sopenharmony_ci buffSizeResult.style.color = 'var(--dark-color,#6a6f77)'; 252fb726d48Sopenharmony_ci bufferSizeSliderParent.setAttribute('percent', buffSizeResult.value); 253fb726d48Sopenharmony_ci bufferSizeSliderParent.setAttribute('percentValue', buffSizeResult.value); 254fb726d48Sopenharmony_ci bufferSizeSlider!.percent = buffSizeResult.value; 255fb726d48Sopenharmony_ci let htmlInputElement = bufferSizeSlider!.shadowRoot?.querySelector('#slider') as HTMLInputElement; 256fb726d48Sopenharmony_ci htmlInputElement.value = buffSizeResult.value; 257fb726d48Sopenharmony_ci } 258fb726d48Sopenharmony_ci }); 259fb726d48Sopenharmony_ci } 260fb726d48Sopenharmony_ci 261fb726d48Sopenharmony_ci private ftraceBuffSizeResultInputHandler( 262fb726d48Sopenharmony_ci buffSizeResultEl: HTMLInputElement, 263fb726d48Sopenharmony_ci bufferSizeSliderParentEl: Element, 264fb726d48Sopenharmony_ci bufferSizeSliderEl: LitSlider 265fb726d48Sopenharmony_ci ): void { 266fb726d48Sopenharmony_ci if (this.ftraceBufferSizeResult!.hasAttribute('percent')) { 267fb726d48Sopenharmony_ci this.ftraceBufferSizeResult!.removeAttribute('percent'); 268fb726d48Sopenharmony_ci } 269fb726d48Sopenharmony_ci buffSizeResultEl.style.color = 'var(--dark-color1,#000000)'; 270fb726d48Sopenharmony_ci buffSizeResultEl.parentElement!.style.backgroundColor = 'var(--dark-background5,#F2F2F2)'; 271fb726d48Sopenharmony_ci buffSizeResultEl.style.backgroundColor = 'var(--dark-background5,#F2F2F2)'; 272fb726d48Sopenharmony_ci if (buffSizeResultEl.value.trim() === '') { 273fb726d48Sopenharmony_ci buffSizeResultEl.style.color = 'red'; 274fb726d48Sopenharmony_ci bufferSizeSliderParentEl.setAttribute('percent', '20480'); 275fb726d48Sopenharmony_ci return; 276fb726d48Sopenharmony_ci } 277fb726d48Sopenharmony_ci let ftraceBufferSize = Number(buffSizeResultEl.value); 278fb726d48Sopenharmony_ci if ( 279fb726d48Sopenharmony_ci ftraceBufferSize < bufferSizeSliderEl!.sliderStyle.minRange || 280fb726d48Sopenharmony_ci ftraceBufferSize > bufferSizeSliderEl!.sliderStyle.maxRange 281fb726d48Sopenharmony_ci ) { 282fb726d48Sopenharmony_ci buffSizeResultEl.parentElement!.classList.add('border-red'); 283fb726d48Sopenharmony_ci bufferSizeSliderParentEl.setAttribute('percent', '20480'); 284fb726d48Sopenharmony_ci } else { 285fb726d48Sopenharmony_ci buffSizeResultEl.parentElement!.classList.remove('border-red'); 286fb726d48Sopenharmony_ci bufferSizeSliderEl!.percent = buffSizeResultEl.value; 287fb726d48Sopenharmony_ci let htmlInputElement = bufferSizeSliderEl!.shadowRoot?.querySelector('#slider') as HTMLInputElement; 288fb726d48Sopenharmony_ci htmlInputElement.value = buffSizeResultEl.value; 289fb726d48Sopenharmony_ci bufferSizeSliderParentEl.setAttribute('percent', buffSizeResultEl.value); 290fb726d48Sopenharmony_ci bufferSizeSliderParentEl.setAttribute('percentValue', buffSizeResultEl.value); 291fb726d48Sopenharmony_ci } 292fb726d48Sopenharmony_ci } 293fb726d48Sopenharmony_ci 294fb726d48Sopenharmony_ci private unDisable(): void { 295fb726d48Sopenharmony_ci this.startSamp = true; 296fb726d48Sopenharmony_ci let checkDesBoxDis = this.shadowRoot?.querySelectorAll<SpCheckDesBox>('check-des-box'); 297fb726d48Sopenharmony_ci let litCheckBoxDis = this.shadowRoot?.querySelectorAll<LitCheckBox>('lit-check-box'); 298fb726d48Sopenharmony_ci let defaultSelected: unknown = []; 299fb726d48Sopenharmony_ci //@ts-ignore 300fb726d48Sopenharmony_ci defaultSelected = defaultSelected.concat(traceConfigList, memoryConfigList, abilityConfigList, hiTraceConfigList); 301fb726d48Sopenharmony_ci this.shadowRoot?.querySelector<SpCheckDesBox>("[value='Hitrace categories']")?.setAttribute('checked', 'true'); 302fb726d48Sopenharmony_ci this.ftraceSlider!.removeAttribute('disabled'); 303fb726d48Sopenharmony_ci checkDesBoxDis?.forEach((item: SpCheckDesBox) => { 304fb726d48Sopenharmony_ci item.removeAttribute('disabled'); 305fb726d48Sopenharmony_ci }); 306fb726d48Sopenharmony_ci litCheckBoxDis?.forEach((item: LitCheckBox) => { 307fb726d48Sopenharmony_ci item.removeAttribute('disabled'); 308fb726d48Sopenharmony_ci }); 309fb726d48Sopenharmony_ci //@ts-ignore 310fb726d48Sopenharmony_ci defaultSelected.filter((item: unknown) => { 311fb726d48Sopenharmony_ci //@ts-ignore 312fb726d48Sopenharmony_ci if (item.isSelect) { 313fb726d48Sopenharmony_ci //@ts-ignore 314fb726d48Sopenharmony_ci this.shadowRoot?.querySelector<SpCheckDesBox>(`[value='${item.value}']`)?.setAttribute('checked', 'true'); 315fb726d48Sopenharmony_ci } 316fb726d48Sopenharmony_ci }); 317fb726d48Sopenharmony_ci } 318fb726d48Sopenharmony_ci 319fb726d48Sopenharmony_ci private disable(): void { 320fb726d48Sopenharmony_ci this.startSamp = false; 321fb726d48Sopenharmony_ci let checkDesBoxDis = this.shadowRoot?.querySelectorAll<SpCheckDesBox>('check-des-box'); 322fb726d48Sopenharmony_ci let litCheckBoxDis = this.shadowRoot?.querySelectorAll<LitCheckBox>('lit-check-box'); 323fb726d48Sopenharmony_ci 324fb726d48Sopenharmony_ci this.ftraceSlider!.setAttribute('disabled', ''); 325fb726d48Sopenharmony_ci 326fb726d48Sopenharmony_ci checkDesBoxDis?.forEach((item: SpCheckDesBox) => { 327fb726d48Sopenharmony_ci item.setAttribute('disabled', ''); 328fb726d48Sopenharmony_ci item.checked = false; 329fb726d48Sopenharmony_ci }); 330fb726d48Sopenharmony_ci 331fb726d48Sopenharmony_ci litCheckBoxDis?.forEach((item: LitCheckBox) => { 332fb726d48Sopenharmony_ci item.setAttribute('disabled', ''); 333fb726d48Sopenharmony_ci item.checked = false; 334fb726d48Sopenharmony_ci }); 335fb726d48Sopenharmony_ci } 336fb726d48Sopenharmony_ci 337fb726d48Sopenharmony_ci initHtml(): string { 338fb726d48Sopenharmony_ci return SpProbesConfigHtml; 339fb726d48Sopenharmony_ci } 340fb726d48Sopenharmony_ci 341fb726d48Sopenharmony_ci //当 custom element首次被插入文档DOM时,被调用。 342fb726d48Sopenharmony_ci public connectedCallback(): void { 343fb726d48Sopenharmony_ci let parent = this.shadowRoot?.querySelector('.user-events') as Element; 344fb726d48Sopenharmony_ci const siblingNode = parent?.querySelectorAll<LitCheckBox>('lit-check-box[name=userEvents]'); 345fb726d48Sopenharmony_ci this.hitrace!.addEventListener('onchange', (ev: CustomEventInit<LitCheckBoxChangeEvent>) => { 346fb726d48Sopenharmony_ci let detail = ev.detail; 347fb726d48Sopenharmony_ci siblingNode.forEach((node) => { 348fb726d48Sopenharmony_ci node.checked = detail!.checked; 349fb726d48Sopenharmony_ci }); 350fb726d48Sopenharmony_ci this.dispatchEvent(new CustomEvent('addProbe', {})); 351fb726d48Sopenharmony_ci }); 352fb726d48Sopenharmony_ci } 353fb726d48Sopenharmony_ci} 354fb726d48Sopenharmony_ci 355fb726d48Sopenharmony_ciconst hiTraceConfigList = [ 356fb726d48Sopenharmony_ci { value: 'ability', isSelect: true }, 357fb726d48Sopenharmony_ci { value: 'accesscontrol', isSelect: false }, 358fb726d48Sopenharmony_ci { value: 'accessibility', isSelect: false }, 359fb726d48Sopenharmony_ci { value: 'account', isSelect: false }, 360fb726d48Sopenharmony_ci { value: 'ace', isSelect: true }, 361fb726d48Sopenharmony_ci { value: 'app', isSelect: true }, 362fb726d48Sopenharmony_ci { value: 'ark', isSelect: true }, 363fb726d48Sopenharmony_ci { value: 'binder', isSelect: true }, 364fb726d48Sopenharmony_ci { value: 'bluetooth', isSelect: false }, 365fb726d48Sopenharmony_ci { value: 'cloud', isSelect: false }, 366fb726d48Sopenharmony_ci { value: 'commonlibrary', isSelect: false }, 367fb726d48Sopenharmony_ci { value: 'daudio', isSelect: false }, 368fb726d48Sopenharmony_ci { value: 'dcamera', isSelect: false }, 369fb726d48Sopenharmony_ci { value: 'deviceauth', isSelect: false }, 370fb726d48Sopenharmony_ci { value: 'devicemanager', isSelect: false }, 371fb726d48Sopenharmony_ci { value: 'deviceprofile', isSelect: false }, 372fb726d48Sopenharmony_ci { value: 'dhfwk', isSelect: false }, 373fb726d48Sopenharmony_ci { value: 'dinput', isSelect: false }, 374fb726d48Sopenharmony_ci { value: 'disk', isSelect: true }, 375fb726d48Sopenharmony_ci { value: 'distributeddatamgr', isSelect: false }, 376fb726d48Sopenharmony_ci { value: 'dlpcre', isSelect: false }, 377fb726d48Sopenharmony_ci { value: 'dsched', isSelect: false }, 378fb726d48Sopenharmony_ci { value: 'dscreen', isSelect: false }, 379fb726d48Sopenharmony_ci { value: 'dslm', isSelect: false }, 380fb726d48Sopenharmony_ci { value: 'dsoftbus', isSelect: false }, 381fb726d48Sopenharmony_ci { value: 'ffrt', isSelect: false }, 382fb726d48Sopenharmony_ci { value: 'filemanagement', isSelect: false }, 383fb726d48Sopenharmony_ci { value: 'freq', isSelect: true }, 384fb726d48Sopenharmony_ci { value: 'graphic', isSelect: true }, 385fb726d48Sopenharmony_ci { value: 'gresource', isSelect: false }, 386fb726d48Sopenharmony_ci { value: 'hdcd', isSelect: false }, 387fb726d48Sopenharmony_ci { value: 'hdf', isSelect: false }, 388fb726d48Sopenharmony_ci { value: 'huks', isSelect: false }, 389fb726d48Sopenharmony_ci { value: 'i2c', isSelect: false }, 390fb726d48Sopenharmony_ci { value: 'idle', isSelect: true }, 391fb726d48Sopenharmony_ci { value: 'interconn', isSelect: false }, 392fb726d48Sopenharmony_ci { value: 'irq', isSelect: true }, 393fb726d48Sopenharmony_ci { value: 'mdfs', isSelect: false }, 394fb726d48Sopenharmony_ci { value: 'memory', isSelect: false }, 395fb726d48Sopenharmony_ci { value: 'memreclaim', isSelect: true }, 396fb726d48Sopenharmony_ci { value: 'misc', isSelect: false }, 397fb726d48Sopenharmony_ci { value: 'mmc', isSelect: true }, 398fb726d48Sopenharmony_ci { value: 'msdp', isSelect: false }, 399fb726d48Sopenharmony_ci { value: 'multimodalinput', isSelect: true }, 400fb726d48Sopenharmony_ci { value: 'musl', isSelect: false }, 401fb726d48Sopenharmony_ci { value: 'net', isSelect: false }, 402fb726d48Sopenharmony_ci { value: 'notification', isSelect: true }, 403fb726d48Sopenharmony_ci { value: 'nweb', isSelect: false }, 404fb726d48Sopenharmony_ci { value: 'ohos', isSelect: true }, 405fb726d48Sopenharmony_ci { value: 'pagecache', isSelect: true }, 406fb726d48Sopenharmony_ci { value: 'power', isSelect: false }, 407fb726d48Sopenharmony_ci { value: 'regulators', isSelect: false }, 408fb726d48Sopenharmony_ci { value: 'rpc', isSelect: true }, 409fb726d48Sopenharmony_ci { value: 'samgr', isSelect: false }, 410fb726d48Sopenharmony_ci { value: 'sched', isSelect: true }, 411fb726d48Sopenharmony_ci { value: 'sensors', isSelect: false }, 412fb726d48Sopenharmony_ci { value: 'sync', isSelect: true }, 413fb726d48Sopenharmony_ci { value: 'usb', isSelect: false }, 414fb726d48Sopenharmony_ci { value: 'ufs', isSelect: false }, 415fb726d48Sopenharmony_ci { value: 'useriam', isSelect: false }, 416fb726d48Sopenharmony_ci { value: 'virse', isSelect: false }, 417fb726d48Sopenharmony_ci { value: 'window', isSelect: true }, 418fb726d48Sopenharmony_ci { value: 'workq', isSelect: true }, 419fb726d48Sopenharmony_ci { value: 'zaudio', isSelect: true }, 420fb726d48Sopenharmony_ci { value: 'zcamera', isSelect: true }, 421fb726d48Sopenharmony_ci { value: 'zimage', isSelect: true }, 422fb726d48Sopenharmony_ci { value: 'zmedia', isSelect: true }, 423fb726d48Sopenharmony_ci]; 424fb726d48Sopenharmony_ci 425fb726d48Sopenharmony_ciconst traceConfigList = [ 426fb726d48Sopenharmony_ci { 427fb726d48Sopenharmony_ci value: 'Scheduling details', 428fb726d48Sopenharmony_ci isSelect: true, 429fb726d48Sopenharmony_ci des: 'enables high-detailed tracking of scheduling events', 430fb726d48Sopenharmony_ci }, 431fb726d48Sopenharmony_ci { 432fb726d48Sopenharmony_ci value: 'CPU Frequency and idle states', 433fb726d48Sopenharmony_ci isSelect: true, 434fb726d48Sopenharmony_ci des: 'Records cpu frequency and idle state change viaftrace', 435fb726d48Sopenharmony_ci }, 436fb726d48Sopenharmony_ci { 437fb726d48Sopenharmony_ci value: 'Advanced ftrace config', 438fb726d48Sopenharmony_ci isSelect: false, 439fb726d48Sopenharmony_ci des: 440fb726d48Sopenharmony_ci 'Enable individual events and tune the kernel-tracing(ftrace) module.' + 441fb726d48Sopenharmony_ci 'The events enabled here are in addition to those from' + 442fb726d48Sopenharmony_ci ' enabled by other probes.', 443fb726d48Sopenharmony_ci }, 444fb726d48Sopenharmony_ci]; 445fb726d48Sopenharmony_ci 446fb726d48Sopenharmony_ciconst memoryConfigList = [ 447fb726d48Sopenharmony_ci { 448fb726d48Sopenharmony_ci value: 'Kernel meminfo', 449fb726d48Sopenharmony_ci isSelect: false, 450fb726d48Sopenharmony_ci des: 'polling of /proc/meminfo', 451fb726d48Sopenharmony_ci }, 452fb726d48Sopenharmony_ci { 453fb726d48Sopenharmony_ci value: 'Virtual memory stats', 454fb726d48Sopenharmony_ci isSelect: false, 455fb726d48Sopenharmony_ci des: 456fb726d48Sopenharmony_ci 'Periodically polls virtual memory stats from /proc/vmstat.' + 457fb726d48Sopenharmony_ci ' Allows to gather statistics about swap,' + 458fb726d48Sopenharmony_ci 'eviction, compression and pagecache efficiency', 459fb726d48Sopenharmony_ci }, 460fb726d48Sopenharmony_ci]; 461fb726d48Sopenharmony_ci 462fb726d48Sopenharmony_ciconst abilityConfigList = [ 463fb726d48Sopenharmony_ci { 464fb726d48Sopenharmony_ci value: 'AbilityMonitor', 465fb726d48Sopenharmony_ci isSelect: false, 466fb726d48Sopenharmony_ci des: 'Tracks the AbilityMonitor', 467fb726d48Sopenharmony_ci }, 468fb726d48Sopenharmony_ci]; 469