راهنمای جامع در مورد ابزارهای فنی فلوک
فهرست
مرکز منابع فلوک
در دنیای امروز، بهرهگیری از ابزارهای فنی و منابع آموزشی مناسب، برای ارتقاء دانش و مهارت در زمینه کیفیت توان الکتریکی امری حیاتی است. فلوک، به عنوان یکی از معتبرترین برندها در این حوزه، مجموعهای از منابع و ابزارهای متنوع را ارائه میدهد که میتواند به مهندسین و متخصصان یاری رساند.
مطالعات موردی
مطالعات موردی به عنوان منابع آموزشی بسیار ارزشمند شناخته میشوند. این موارد شامل مثالهای واقعی از پروژههای موفق در حوزه بهبود کیفیت توان و تحلیل آن هستند که میتوانند برای دیگران منبع الهام و آموزههای مفیدی به شمار آیند.
رویدادهای پروف تکنیک
شرکت فلوک با برگزار کردن رویدادهای مختلف در زمینه قدرت الکتریکی، به اشترکگذاری دانش و تجربیات در میان متخصصان کمک میکند. این رویدادها شامل سمینارها و کارگاههای عملی است که به تقویت مهارتهای فنی و عملی داوطلبان پرداختهاند.
نمایشگاهها و سمینارها
فلوک به طور منظم در نمایشگاهها و سمینارهای متنوع شرکت میکند، جایی که آخرین محصولات و تکنولوژیهای خود را معرفی نموده و به برقراری ارتباطی مؤثر با مشتریان و همکاران خود میپردازد.
وبینارها
وبینارها به عنوان ابزاری مؤثر برای آموزش آنلاین و ارائه اطلاعات بهروز در خصوص محصولات و خدمات فلوک، یک بستر مفید برای فراگیری هستند. این وبینارها به بررسی موضوعات گوناگون کیفی و فنی میپردازند، از جمله کیفیت توان و فیلترهای هارمونیک.
ابزارها و ماشینحسابها
فلوک همچنین مجموعهای از ابزارهای تعاملی و ماشینحسابهایی را ارائه میدهد که به متخصصان کمک میکند تا در تحلیل کیفیت توان و محاسبات مرتبط با آن به نحو بهتری عمل کنند.


چت با دستیار فلوک
برای دریافت مشاوره و اطلاعات بیشتر، کاربران میتوانند با دستیار مجازی فلوک تماس بگیرند. این دستیار میتواند در مورد تمامی ابزارها و محصولات فلوک اطلاعات لازم را در اختیار شما قرار دهد.
تماس با ما
اگر به مشاوره حضوری یا پاسخ به سوالات خاص نیاز دارید، میتوانید به صفحه تماس با ما مراجعه کنید.
با بهرهگیری از این منابع و ابزارها، شرکتها و صنایع مختلف میتوانند در پروژههای خود به موفقیتهای چشمگیری دست یافته و کیفیت توان الکتریکی را به طرز مؤثری بهبود بخشند.




بررسی وجود .buzz-algolia
در صورت وجود این عنصر، قصد داریم CTA و فیلد ورودی ربات را بهروزرسانی کنیم.
let existingCta = document.querySelector(‘.buzz-algolia’);
if (!existingCta) {
buildAndInsertCta(searchInput.value);
}
شنیدن تغییرات ورودی
علاوه بر این، هنگامی که ورودی تغییر میکند، ما مسئولیت بهروزرسانی CTA و فیلد ورودی ربات را بر عهده میگیرم تا همواره در سطر اول همگام باشند.
searchInput.addEventListener(‘input’, function () {
let currentCta = document.getElementsByClassName(‘toc-cta’)[0];
if (currentCta) {
currentCta.innerHTML = “از دستیار فلوک برای یادگیری بیشتر در مورد “” + searchInput.value + “” استفاده کنید”;
botInput.value = “لطفاً بیشتر در مورد ” + searchInput.value + ” به من بگویید”;
} else {
buildAndInsertCta(searchInput.value);
}
});
افزودن شنونده کلیک به .buzz-algolia
چنانچه .buzz-algolia وجود داشته باشد، یک شنونده کلیک به دکمه مربوط به آن خواهیم افزود.
let algoliaCta = document.querySelector(‘.toc-cta’);
if (algoliaCta) {
algoliaCta.addEventListener(‘click’, function () {
// اگر ‘bot-container’ در وضعیت bot-mid یا bot-full نباشد، به حالت bot-mid منتقل میشویم
if (!document.querySelector(‘.bot-container’).classList.contains(‘bot-mid’)) {
botTransitionMid();
}
sendMessage(botInput.value);
// فیلد ورودی را پاک میکنیم
botInput.value = ”;
});
}
مدیریت مسیرهای خاص
اگر مسیر شامل ‘search/fluke’ باشد،
} else if (
path.includes(‘products/electrical-testing/digital-multimeters’) ||
path.includes(‘en-us/products/calibration-tools/temperature-calibrators’) ||
path.includes(‘en-us/products/electrical-testing/best-solar-energy-industry-tools’)
) {
const lastState = localStorage.getItem(‘buzzLastState’);
if (lastState) {
return;
}
botTransitionMid();
scrollToBottom();
// مدیریت مواردی که مسیر شامل محصولات خاص میشود
}
گرفتن یا ایجاد شناسه چت
function getOrGenerateChatId() {
let chatId;
chatId = localStorage.getItem(‘chatId’);
// اگر chatId در localStorage وجود نداشته باشد، یک شناسه جدید ایجاد میکنیم
if (!chatId || chatId === ”) {
chatId = ‘chat-‘ + Date.now() + ‘-‘ + Math.floor(Math.random() * 1000);
localStorage.setItem(‘chatId’, chatId);
}
return chatId;
}
عملکرد پاکسازی چت
function clearMessages(path) {
localStorage.removeItem(‘chatMessages’);
localStorage.removeItem(‘chatId’);
localStorage.setItem(‘chatQuestion’, 0); // بازنشانی به 0
localStorage.removeItem(‘buzzLastState’);
chatId = getOrGenerateChatId();
sendDataLayer({
‘event’: ‘chat_bot_event’,
‘chatId’: localStorage.getItem(‘chatId’),
‘reponseCount’: localStorage.getItem(‘chatQuestion’),
‘requestType’: ‘clear_chat’
});
const botCon = document.querySelector(‘.bot-message-container’);
// پس از پاکسازی چت، میخواهیم innerHTML ربات-پیام-container را خالی کنیم و متن معرفی را دوباره اضافه نماییم
botCon.innerHTML = ”
“;
addInitialBuzz(path);
}
اضافه کردن احساسات
function appendSentiment(thumbs, chatId, chatDialogId) {
const botCon = document.querySelector(‘.bot-message-container’);
const lastBotMessage = botCon.querySelector(‘.bot:last-of-type’);
if (thumbs) {
const botRatingDiv = document.createElement(‘div’);
botRatingDiv.classList.add(‘bot-rating’);
// افزودن دیو امتیاز بعد از lastBotMessage
lastBotMessage.parentNode.insertBefore(botRatingDiv, lastBotMessage.nextSibling);
// افزودن دکمهها در داخل دیو امتیاز ربات
botRatingDiv.innerHTML = `;
`;
const thumbupElements = botRatingDiv.querySelectorAll(‘.thumbup’);
const thumbdownElements = botRatingDiv.querySelectorAll(‘.thumbdown’);
thumbupElements.forEach((thumbup) => {
thumbup.addEventListener(‘click’, function () {
chatRating = 1;
this.classList.add(‘responded’);
thumbdownElements.forEach((thumbdown) => thumbdown.classList.add(‘responded-alt’));
thumbupElements.forEach((thumbup) => thumbup.style.pointerEvents = ‘none’);
thumbdownElements.forEach((thumbdown) => thumbdown.style.pointerEvents = ‘none’);
// تابع sendRating با پارامترهای مناسب را فراخوانی کنید
sendRating(chatRating, chatId, chatDialogId);
});
});
thumbdownElements.forEach((thumbdown) => {
thumbdown.addEventListener(‘click’, function () {
chatRating = -1;
this.classList.add(‘responded’);
thumbupElements.forEach((thumbup) => thumbup.classList.add(‘responded-alt’));
thumbupElements.forEach((thumbup) => thumbup.style.pointerEvents = ‘none’);
thumbdownElements.forEach((thumbdown) => thumbdown.style.pointerEvents = ‘none’);
// تابع sendRating با پارامترهای مناسب را فراخوانی کنید
sendRating(chatRating, chatId, chatDialogId);
});
});
}
}
تابع ارسال پیام کاربر به Azure Chatbot
function sendRating(chatRating, chatId, chatDialogId) {
const endpoint = ‘https://flk-delphiapi-sitegpt-prd-001.azurewebsites.net/v1/chat/ratings’;
const payload = {
chatId: chatId,
dialogId: chatDialogId,
chatRating: chatRating,
};
const headers = {
‘Content-Type’: ‘application/json’,
‘Ocp-Apim-Subscription-Key’: ‘078db2f23dcb4b23a5cb1b6255fc08c8’,
};
// این خط را در ابتدای تابع برای ثبت زمان شروع اضافه کنید
const startTime = new Date();
fetch(endpoint, {
method: ‘POST’,
headers: headers,
body: JSON.stringify(payload),
})
.then(response => {
if (!response.ok) {
throw new Error(`خطای HTTP! وضعیت: ${response.status}`);
}
return response.json();
})
.then(data => {
if (data) {
console.log(‘امتیاز ‘ + chatRating + ‘ برای سوال ‘ + chatDialogId + ‘ ارسال شد’);
}
})
.catch(error => console.error(‘خطا:’, error));
}
تابع پورتال تست Cloudflare
function cloudflareTestingPortal(botResponse, timeTakenInSeconds, payload, dataLayerObject) {
// دریافت نام میزبان
const hostname = window.location.hostname;
// اگر نام میزبان برابر با uat-gpt.fluke.com باشد، یک پیام کنسول اضافه کنید
if (hostname === ‘uat-gpt.fluke.com’) {
// افزودن botResponse، timeTakenInSeconds، payload، و gtm به کانتینرهای مربوطه
const lastMessageRight = document.querySelector(‘#last-message-right’);
const lastResponseRight = document.querySelector(‘#last-response-right’);
const dataLayerRight = document.querySelector(‘#data-layer-right’);
const payloadRight = document.querySelector(‘#payload-right’);
}
}
آخرین پیام سمت راست بهعنوان پاسخ ربات تنظیم شد.
جواب نهایی سمت راست به زمان صرفشده بر حسب ثانیهها مشخص گردید.
دیتا لایر سمت راست بهعنوان یک شیء JSON تنظیم شده است.
بارگذاری سمت راست نیز بهعنوان یک شیء JSON تبیین گردیده است.
ما به وارد کردن اشیاء دیتالایر نیاز داریم.
پیام ورود داده
تابع ارسال داده لایر بهصورت زیر تعریف شده است:
function sendDataLayer(data) {
// تابعی برای ردیابی رویداد
window.dataLayer = window.dataLayer || [];
window.dataLayer.push(data);
}
تأیید میزبان و محلی
در نهایت، برای راهاندازی جهانی، بهویژه در بسیاری از ویژگیهای خاص کایزن، ما فقط از en-us پشتیبانی میکنیم.
تابع زیر به منظور تأیید میزبان و محلی تعریف شده است:
function isValidHostAndLocale(validLocales) {
// دریافت نام میزبان - در حال حاضر فقط بر روی *.fluke.com پشتیبانی میشود. اولین بخش از مسیر lang-locale است و تنها زمان راهاندازی از en-us پشتیبانی میکنیم.
const hostname = window.location.hostname;
const path = window.location.pathname;
const langLocale = path.split('/')[1];
// اگر نام میزبان 'www.fluke.com' یا 'regression.fluke.com' نباشد، یا langLocale در آرایه validLocales وجود نداشته باشد، false برمیگرداند.
if ((hostname !== 'www.fluke.com' && hostname !== 'regression.fluke.com') || !validLocales.includes(langLocale)) {
return false;
}
// اگر نام میزبان و langLocale شرایط را پاس کنند، true برمیگرداند.
return true;
}
پرسشهای متداول
چگونه میتوانم از ابزارهای فلوک استفاده کنم؟
با مراجعه به وبسایت فلوک و انتخاب ابزار مورد نظر، میتوانید از راهنماها و منابع آموزشی بهرهمند شوید.
آیا فلوک رویدادهای آموزشی برگزار میکند؟
بله، فلوک به طور مرتب رویدادهای آموزشی و کارگاههای عملی برگزار میکند.
مزایای استفاده از فیلترهای هارمونیک چیست؟
فیلترهای هارمونیک به بهبود کیفیت توان و کاهش نوسانات الکتریکی کمک میکنند.
منبع: www.fluke.com