Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /var/www/html/plugins/system/falangdriver/falangdriver.php on line 534

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/plugins/system/t4/src/t4/MVC/Router/T4.php on line 388
2020 NXP Cup Innovation Challenge contest -Autonomous Racing Car - Bluetooth forum - bluetooth蓝牙技术

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/components/com_comprofiler/plugin/user/plug_cbjdownloads/cbjdownloads.php on line 49

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/components/com_comprofiler/plugin/user/plug_cbblogs/cbblogs.php on line 48

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/components/com_comprofiler/plugin/user/plug_cbarticles/cbarticles.php on line 47

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

2020 NXP Cup Innovation Challenge contest -Autonomous Racing Car


Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323
  • btt
  • [btt]
  • Topic Author
  • New Member
  • New Member
More
04 Sep 2020 12:16 #78 by btt
New Topic
This project is the first winner on 2020 NXP Cup Electromaker Innovation Challenge contest.
For this project details,please refer 自动驾驶竞赛车 - bluetooth蓝牙技术
Support us and view this ad

可选:点击以支持我们的网站

免费文章

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/components/com_comprofiler/plugin/user/plug_cbjdownloads/cbjdownloads.php on line 49

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/components/com_comprofiler/plugin/user/plug_cbblogs/cbblogs.php on line 48

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/components/com_comprofiler/plugin/user/plug_cbarticles/cbarticles.php on line 47

  • 开发平台: NXP
  • 许可协议: GNU General Public License, version 3 or later (GPL3+)
  项目中使用的工具物品 硬件 FRDM-K64F 带驱动器的齿轮步进电机 微伺服器 Alamak 车模 定制PCB 激光接近传感器 许多不同的SMD和非SMD组件(您可以在本文的底部找到下载列表) 4N25 光耦合器   软件、App和在线服务 MCUXpresso (MCUXpresso-IDE) Processing   手工工具和制造器械 3D 打印机 螺丝刀 焊接工具(最好是空气焊接工具)   故事 我们已经从上一个赛车比赛中获得了一些知识,所以我们决定做一些更困难的事情。所以我们将会制作一个新的主板,伺服电机上的摄像头,蓝牙通讯等等。   摄像头 这是整个车辆中最重要的部件。摄像机用于车辆在两条轨道边缘线之间的导航。甚至在法规中都规定摄像机应该是汽车导航的主要用途。我们使用的是单色线扫描相机,这意味着我们的相机只能看到一行黑色,灰色和白色像素,因为单色线扫描相机的分辨率为128x1。这种低分辨率可以通过尽可能的高的光谱速率和良好的光敏性来补偿。 在一年前的比赛中,我们发现了两个问题。首先,光线不仅来自相机的正前方,也来自相机的后方。这是因为相机芯片被放置在薄薄的PCB板上,让光线通过。所以为了解决这个问题,我们3D打印了黑色相机外壳,现在它看起来更酷炫了! 第二个问题是,我们把相机上下移动了很多次来找到正确的位置,使其在捕捉正确的转弯的同时不捕捉汽车的车身。我们在移动的过程中同时发现,不同类型的轨道的最佳位置不同。 下一个问题也是这样,如果我们不小心撞到相机,我们重新移动来找到正确的位置。所以我们增加了齿轮比为1:2的步进电机,使我们的相机能更快的移动。同时,可以在图中看到,我们添加了end Switch,这是因为伺服电机系统本身并不提供任何关于其初始位置的信息。当我们的汽车启动时,我们必须手动把它移到触碰末端开关的位置。从那一刻起我们就知道相机的摄影区间。 在这里,你可以看到所有3D打印部分的3D渲染(图中只有黑色细杆不是3D打印的) 接下来,让我们详细看一下硬件和软件。我们的目标是在一秒内捕获尽可能多图像的同时保持良好的对比度。因为如果对比度不合适,则会出现要么图像太暗看不到图片上的任何东西的情况,要么是图像太亮同样也看不到任何东西,但在这种情况对比度不合适的情况下,所有的物体都是白色的。此外,我们不能让我们的曝光时间太长,因为这会限制我们的帧率。帧率的计算公式为: 帧率= 1 /曝光 通过归一化值可以部分地解决这些问题。假设我们有值为0的黑色和值为1的白色。我们取过饱和图像,其最低值为0.8,最高值为1,这给出了<0.8,1>的值范围,我们要将其映射为<0,1>。这样我们的颜色从0.8变为0;0.9~0.5;以及从1到1。通过这个非常简单的过程,我们得到了没有饱和度的正常图像,但是这也会给图像带来大量的噪声,使得搜索线条变得非常困难。如果我们在场景中添加25%的光照,那么捕获的图像将进入<1,1>范围,我们将无法从中提取任何数据,甚至包括噪声数据。 那么,让我们回到如何正确的设置曝光这一步骤。我们的目标是实现最大的对比度。对比度的计算公式如下: 对比度=浅颜色-深颜色 当最浅的颜色是纯白,而最深的颜色是纯黑时,我们获得了最大的对比度。我们的相机是线性传感器,所以这意味着如果我们增加50%的曝光,那么最暗值和最亮值都应该增加50%。我们的目标是得到平均颜色0.5。考虑下面的例子<0,0.1>,这些值的平均值太低(10x),所以我们需要将曝光量除以0.1;<0,1>平均值是0.5,这完全没问题,我们什么都不用变;<1,1>平均值太高(2x),所以我们将曝光除以2。在此基础上,我们可以建立以下公式来调整曝光。 新曝光率 = 旧曝光率 / (最浅色 + 最深色) 这样调整之后,一切就绪。可以实现。 无论你的车去任何地方,色彩看起来都挺不错。最低限度是当你进入一个不是靠太阳而是靠荧光灯或其他东西照明的房间之前。你会开始看到一个巨大的闪烁,即使当灯光像往常一样照耀你的眼睛。为什么会这样呢? 我们的灯是由交流电供电的,它跟随50赫兹频率的正弦。如下所示(x轴以秒为单位): 您可以看到灯是在50 Hz下运行,但峰值在100 Hz。同样,对于光来说,真正重要的不是电压,而是功率,它看起来是这样的:  //原文中缺一张图片 我们现在可以非常清楚地看到实际是100赫兹。那么如何修复这个问题呢?我们需要使采样频率与电源频率同步,因此只有100,50,25,...Hz才是可行的频率。但是我们希望保持在尽可能高的频率,因为这些线条真的很重要,如果我们不高频拍照,我们很容易错过它们。但较低的频率(如50 Hz)在弱光情况下是有用的,在弱光水平下,我们需要曝光超过10ms。 所以让我们看看如何实现这个功能。我们将需要采取帧每10ms的速率曝光。但随之,我们在这里遇到了新的问题。帧捕获的开始和结束连接在一起成为单个事件。  //原文缺一张图片 如图所示,我们发送SI脉冲,并通过发送CLK脉冲逐个读取像素数据。但正如您在图片中看到的,在读取图像的18个像素后,将开始新的积分(图像捕获),我们希望这个步骤在更长时间后进行(前一幅图像的积分耗时6ms,我们希望保持同步在10ms,因此我们像多等待4ms)。我们可以通过虚拟读取清除CMOS来解决这个问题(忽略内容,并尽可能快地进行读取)。最终结果如下:我们对图像进行6ms积分,然后在新积分开始后读取并处理图像,因此在4ms后读取传感器,但忽略数据。在这之后,真实图像的长度为6ms的新的积分开始了。 当然,也有可能用更好的灯光照亮赛道。有有电容器些灯可以减少这种闪烁,或者他们可以储存一段时间一些能量的热和光。那么光动力就会是这样的:  //缺一张图片 或者它可以只是在阳光下,所以它将是完美的线条。当我们像这样得到足够稳定的光输出时,我们可以移除代码来修复闪烁,并尝试得到100fps以上。但是当赛程出现在我们不知道的环境中,我们应该一直围绕着这段代码。 让我们看看如何编程。K64F有四个可供选择的凹面,凹面代表可编程中断控制器。这是一个非常简单的设备,可以设置时间段选择触发中断。中断通常是一个小函数,它不被其他代码执行,而是由中断控制器执行。凹面是一种能够中断当前代码的执行,保存当前代码的状态,并在某些事件发生时执行一些中断功能的设备,如我们将凹面等待时间设置为等待时间。 我们的照相机需要两个凹面。一个用于10ms清除间隔,另一个用于设置积分间隔。 让我们看一下中断处理程序的示例代码: extern "C" { void PIT_CHANNEL_0_IRQHANDLER(void) { if(PIT->CHANNEL[0].TFLG & PIT_TFLG_TIF_MASK) { PIT->CHANNEL[0].TFLG = PIT_TFLG_TIF_MASK; // interrupt code goes here } } 首先我们需要编写的是外部的“C”,因为C++不遵循传统的低级代码实践,这会使我们很难找到中断函数。将其还原为旧的C模式可以使一切正常工作。然后是函数声明,它总是必须具有void参数的void返回类型,因为此函数不返回任何值,也不接受任何值。通道设置使用哪个凹点,在本例中我们使用的是PIT0。该函数做的第一件事是检查它是否被中断执行,如果不是,则退出。如果是,则清除中断标志。此标志使中断控制器触发此中断,如果该中断不被清除,则将以无休止的中断循环结束。后面是我们真正的中断代码。 现在我们需要看看如何从得到的图像中检测线条。我们正在寻找旁边有白色区域的黑线。我首先考虑了阈值和搜索区域,但是效果不是很好。我发现的最好的方法是使用派生,派生当黑白变化时给出峰值。派生效果不错,但要实现最佳检测质量,我们需要使用平均值。一开始有人可能会想到,这样做的方法是对相邻的导数求平均,但这是行不通的。原因如下: Derivation = (Der1 + Der2 + Der3)/3 此等式等于下一等式: Derivation = ((P1-P2)+(P2-P3)+(P3-P4))/3 当我们简化它时,可得到: Derivation = (P1-P4)/3 这并不能让我们摆脱噪音。所以我决定尝试不同的方法。对第一组像素进行平均,然后对第二组相邻像素进行平均,并对这些组的平均值进行推导: Derivation = (P1+P2+P3)/3 - (P4+P5+P6)/3 如果结果接近0,那么就意味着不可行。如果结果远离零,那么就意味着某处有线。基于派生是正还是负,我们就可以检测它是从白变黑还是从黑变白。 步进电机 步进电机采用4路信号A,B,C,D控制。每一个步进电机控制一个线圈。我们使用的是电机28BYJ-48,这是最好的半步工作模式,你可以在下面的图片上看到。也有全步模式。尝试之后感觉全步模式比半步模式表现更差。半步模式由8种不同的ABCD组合组成(您可以看到图像上的所有内容在8次分割后重复),而半步模式仅使用4种组合。电机通过从左向右发送脉冲而向前移动,通过从右向左发送脉冲而向相反方向移动。 当汽车启动时,电机的位置取决于汽车停机前电机的位置。但是用这种方法得到位置精确,因为有人可能会用手对电机施加足够大的力使其移动到不同的位置,而且这种位置节省会慢慢地破坏控制器的闪存。因此,最好的方法是在汽车行李箱处向下移动相机的方向发送这些脉冲,并且在每次移动时检查相机是否击中了末端开关(即安装在相机下面的小开关,它定义了相机的最低位置,也必须知道相机击中开关的角度,这样我们就可以进行所需的所有计算)。当相机按下结束开关后,开关闭合并向外微控制器发送信号,步进器停止移动,并表示我们现在处于位置0,也就是开始位置。    保险杠 我们从一年前学到的经验是保险杠非常重要。我们曾多次与墙壁和各种物体相撞,这几乎完全撞坏了我们的车。所以这一次我们增加了一个软管保险杠,软管和巨大的3D打印块相连。我们也把软管当作激光保持器。软管能够吸收部分碰撞,其余部分通过巨大的块转移到我们的车,所以碰撞不是仅靠车的边缘来处理的。 这里是保险杠的3D渲染,你可以看到它真的很巨型,它还包括激光支架。 激光 避障是一个必须的功能。为闪避放入轨道的白色立方体。我们的计划用激光找到这个障碍物,激光会用伺服电机绕着白色立方体旋转。这第一步,会准确的发出障碍物靠近时的信息,但是不能给出完美的位置。在我们找到障碍物后,我们将使用相机和步进电机正确地扫描它的位置。 为了使该部分正常工作,需要直接连接到电池以获得最大电压。此外,还需要光耦合器,因为该激光传感器输出的电压接近电池电压,约为7.2V。但K64F最大可处理5.5V电压。...

继续阅读完整内容

支持我们的网站,请点击查看下方广告

正在加载广告...
带驱动器的齿轮步进电机
微伺服器
Alamak 车模
定制PCB
激光接近传感器
许多不同的SMD和非SMD组件(您可以在本文的底部找到下载列表)
4N25 光耦合器
 

软件、App和在线服务

MCUXpresso (MCUXpresso-IDE)
 

手工工具和制造器械

3D 打印机
螺丝刀
焊接工具(最好是空气焊接工具)
 

故事

我们已经从上一个赛车比赛中获得了一些知识,所以我们决定做一些更困难的事情。所以我们将会制作一个新的主板,伺服电机上的摄像头,蓝牙通讯等等。

 

摄像头

这是整个车辆中最重要的部件。摄像机用于车辆在两条轨道边缘线之间的导航。甚至在法规中都规定摄像机应该是汽车导航的主要用途。我们使用的是单色线扫描相机,这意味着我们的相机只能看到一行黑色,灰色和白色像素,因为单色线扫描相机的分辨率为128x1。这种低分辨率可以通过尽可能的高的光谱速率和良好的光敏性来补偿。

在一年前的比赛中,我们发现了两个问题。首先,光线不仅来自相机的正前方,也来自相机的后方。这是因为相机芯片被放置在薄薄的PCB板上,让光线通过。所以为了解决这个问题,我们3D打印了黑色相机外壳,现在它看起来更酷炫了!

第二个问题是,我们把相机上下移动了很多次来找到正确的位置,使其在捕捉正确的转弯的同时不捕捉汽车的车身。我们在移动的过程中同时发现,不同类型的轨道的最佳位置不同。

下一个问题也是这样,如果我们不小心撞到相机,我们重新移动来找到正确的位置。所以我们增加了齿轮比为1:2的步进电机,使我们的相机能更快的移动。同时,可以在图中看到,我们添加了end Switch,这是因为伺服电机系统本身并不提供任何关于其初始位置的信息。当我们的汽车启动时,我们必须手动把它移到触碰末端开关的位置。从那一刻起我们就知道相机的摄影区间。

在这里,你可以看到所有3D打印部分的3D渲染(图中只有黑色细杆不是3D打印的)

接下来,让我们详细看一下硬件和软件。我们的目标是在一秒内捕获尽可能多图像的同时保持良好的对比度。因为如果对比度不合适,则会出现要么图像太暗看不到图片上的任何东西的情况,要么是图像太亮同样也看不到任何东西,但在这种情况对比度不合适的情况下,所有的物体都是白色的。此外,我们不能让我们的曝光时间太长,因为这会限制我们的帧率。帧率的计算公式为:

  • 帧率= 1 /曝光

通过归一化值可以部分地解决这些问题。假设我们有值为0的黑色和值为1的白色。我们取过饱和图像,其最低值为0.8,最高值为1,这给出了<0.8,1>的值范围,我们要将其映射为<0,1>。这样我们的颜色从0.8变为0;0.9~0.5;以及从1到1。通过这个非常简单的过程,我们得到了没有饱和度的正常图像,但是这也会给图像带来大量的噪声,使得搜索线条变得非常困难。如果我们在场景中添加25%的光照,那么捕获的图像将进入<1,1>范围,我们将无法从中提取任何数据,甚至包括噪声数据。

那么,让我们回到如何正确的设置曝光这一步骤。我们的目标是实现最大的对比度。对比度的计算公式如下:

  • 对比度=浅颜色-深颜色

当最浅的颜色是纯白,而最深的颜色是纯黑时,我们获得了最大的对比度。我们的相机是线性传感器,所以这意味着如果我们增加50%的曝光,那么最暗值和最亮值都应该增加50%。我们的目标是得到平均颜色0.5。考虑下面的例子<0,0.1>,这些值的平均值太低(10x),所以我们需要将曝光量除以0.1;<0,1>平均值是0.5,这完全没问题,我们什么都不用变;<1,1>平均值太高(2x),所以我们将曝光除以2。在此基础上,我们可以建立以下公式来调整曝光。

  • 新曝光率 = 旧曝光率 / (最浅色 + 最深色)

这样调整之后,一切就绪。可以实现。

无论你的车去任何地方,色彩看起来都挺不错。最低限度是当你进入一个不是靠太阳而是靠荧光灯或其他东西照明的房间之前。你会开始看到一个巨大的闪烁,即使当灯光像往常一样照耀你的眼睛。为什么会这样呢?

我们的灯是由交流电供电的,它跟随50赫兹频率的正弦。如下所示(x轴以秒为单位):

您可以看到灯是在50 Hz下运行,但峰值在100 Hz。同样,对于光来说,真正重要的不是电压,而是功率,它看起来是这样的:

 //原文中缺一张图片

我们现在可以非常清楚地看到实际是100赫兹。那么如何修复这个问题呢?我们需要使采样频率与电源频率同步,因此只有100,50,25,...Hz才是可行的频率。但是我们希望保持在尽可能高的频率,因为这些线条真的很重要,如果我们不高频拍照,我们很容易错过它们。但较低的频率(如50 Hz)在弱光情况下是有用的,在弱光水平下,我们需要曝光超过10ms。

所以让我们看看如何实现这个功能。我们将需要采取帧每10ms的速率曝光。但随之,我们在这里遇到了新的问题。帧捕获的开始和结束连接在一起成为单个事件。

 //原文缺一张图片

如图所示,我们发送SI脉冲,并通过发送CLK脉冲逐个读取像素数据。但正如您在图片中看到的,在读取图像的18个像素后,将开始新的积分(图像捕获),我们希望这个步骤在更长时间后进行(前一幅图像的积分耗时6ms,我们希望保持同步在10ms,因此我们像多等待4ms)。我们可以通过虚拟读取清除CMOS来解决这个问题(忽略内容,并尽可能快地进行读取)。最终结果如下:我们对图像进行6ms积分,然后在新积分开始后读取并处理图像,因此在4ms后读取传感器,但忽略数据。在这之后,真实图像的长度为6ms的新的积分开始了。

当然,也有可能用更好的灯光照亮赛道。有有电容器些灯可以减少这种闪烁,或者他们可以储存一段时间一些能量的热和光。那么光动力就会是这样的:

 //缺一张图片

或者它可以只是在阳光下,所以它将是完美的线条。当我们像这样得到足够稳定的光输出时,我们可以移除代码来修复闪烁,并尝试得到100fps以上。但是当赛程出现在我们不知道的环境中,我们应该一直围绕着这段代码。

让我们看看如何编程。K64F有四个可供选择的凹面,凹面代表可编程中断控制器。这是一个非常简单的设备,可以设置时间段选择触发中断。中断通常是一个小函数,它不被其他代码执行,而是由中断控制器执行。凹面是一种能够中断当前代码的执行,保存当前代码的状态,并在某些事件发生时执行一些中断功能的设备,如我们将凹面等待时间设置为等待时间。

我们的照相机需要两个凹面。一个用于10ms清除间隔,另一个用于设置积分间隔。

让我们看一下中断处理程序的示例代码:

extern "C" {
void PIT_CHANNEL_0_IRQHANDLER(void) {
if(PIT->CHANNEL[0].TFLG & PIT_TFLG_TIF_MASK) {
PIT->CHANNEL[0].TFLG = PIT_TFLG_TIF_MASK;
// interrupt code goes here
}
}

首先我们需要编写的是外部的“C”,因为C++不遵循传统的低级代码实践,这会使我们很难找到中断函数。将其还原为旧的C模式可以使一切正常工作。然后是函数声明,它总是必须具有void参数的void返回类型,因为此函数不返回任何值,也不接受任何值。通道设置使用哪个凹点,在本例中我们使用的是PIT0。该函数做的第一件事是检查它是否被中断执行,如果不是,则退出。如果是,则清除中断标志。此标志使中断控制器触发此中断,如果该中断不被清除,则将以无休止的中断循环结束。后面是我们真正的中断代码。

现在我们需要看看如何从得到的图像中检测线条。我们正在寻找旁边有白色区域的黑线。我首先考虑了阈值和搜索区域,但是效果不是很好。我发现的最好的方法是使用派生,派生当黑白变化时给出峰值。派生效果不错,但要实现最佳检测质量,我们需要使用平均值。一开始有人可能会想到,这样做的方法是对相邻的导数求平均,但这是行不通的。原因如下:

  • Derivation = (Der1 + Der2 + Der3)/3

此等式等于下一等式:

  • Derivation = ((P1-P2)+(P2-P3)+(P3-P4))/3

当我们简化它时,可得到:

  • Derivation = (P1-P4)/3

这并不能让我们摆脱噪音。所以我决定尝试不同的方法。对第一组像素进行平均,然后对第二组相邻像素进行平均,并对这些组的平均值进行推导:

  • Derivation = (P1+P2+P3)/3 - (P4+P5+P6)/3

如果结果接近0,那么就意味着不可行。如果结果远离零,那么就意味着某处有线。基于派生是正还是负,我们就可以检测它是从白变黑还是从黑变白。

步进电机

步进电机采用4路信号A,B,C,D控制。每一个步进电机控制一个线圈。我们使用的是电机28BYJ-48,这是最好的半步工作模式,你可以在下面的图片上看到。也有全步模式。尝试之后感觉全步模式比半步模式表现更差。半步模式由8种不同的ABCD组合组成(您可以看到图像上的所有内容在8次分割后重复),而半步模式仅使用4种组合。电机通过从左向右发送脉冲而向前移动,通过从右向左发送脉冲而向相反方向移动。

当汽车启动时,电机的位置取决于汽车停机前电机的位置。但是用这种方法得到位置精确,因为有人可能会用手对电机施加足够大的力使其移动到不同的位置,而且这种位置节省会慢慢地破坏控制器的闪存。因此,最好的方法是在汽车行李箱处向下移动相机的方向发送这些脉冲,并且在每次移动时检查相机是否击中了末端开关(即安装在相机下面的小开关,它定义了相机的最低位置,也必须知道相机击中开关的角度,这样我们就可以进行所需的所有计算)。当相机按下结束开关后,开关闭合并向外微控制器发送信号,步进器停止移动,并表示我们现在处于位置0,也就是开始位置。

  autoracing car

保险杠

我们从一年前学到的经验是保险杠非常重要。我们曾多次与墙壁和各种物体相撞,这几乎完全撞坏了我们的车。所以这一次我们增加了一个软管保险杠,软管和巨大的3D打印块相连。我们也把软管当作激光保持器。软管能够吸收部分碰撞,其余部分通过巨大的块转移到我们的车,所以碰撞不是仅靠车的边缘来处理的。

这里是保险杠的3D渲染,你可以看到它真的很巨型,它还包括激光支架。

激光

避障是一个必须的功能。为闪避放入轨道的白色立方体。我们的计划用激光找到这个障碍物,激光会用伺服电机绕着白色立方体旋转。这第一步,会准确的发出障碍物靠近时的信息,但是不能给出完美的位置。在我们找到障碍物后,我们将使用相机和步进电机正确地扫描它的位置。

为了使该部分正常工作,需要直接连接到电池以获得最大电压。此外,还需要光耦合器,因为该激光传感器输出的电压接近电池电压,约为7.2V。但K64F最大可处理5.5V电压。因此,我们用此电压为光耦合器二极管供电,其电流受电阻限制,因此性能良好。二极管点亮晶体管,晶体管打开。该晶体管采用3.3V供电,这是K64F的优良电压。

此简单电路的原理图如下:

 Schematics for autoracing car

伺服装置

激光和转向都需要伺服传动装置。伺服使用频率为50 Hz的 PWM控制。伺服电机的位置是由占空比改变的,通常最小为1ms,最大为2ms。但时,最好是分别标定各个伺服机构,找出它们的中心位置和占空比变化的步长。

 pwm for autoracing car

有人可能会认为,使用伺服装置来上下移动相机而不是步移会更好。但我却不那么认为,伺服可能更快并且更容易控制,但这是要付出“精确”作为代价。伺服电机实际上是由直流电机构成的,就像那些小型RC汽车或其他儿童玩具和电位器中的一样。电机转动,通过齿轮箱输出电机的转动,齿轮箱上装有电位器,用于检测位置。问题所在是电位器中可能存在的细小灰尘,电阻元件的非线性精度,控制器的低精度等。当试图缓慢移动电机或电机根本不移动时,这可能导致突然的无例外的跳跃。它不能仅仅用于精确位置的设定(至少那些便宜的伺服不能),所以我选择了步进器,它速度慢但更精确。

编码器

我们从前一年学到,对车速的了解是十分有用且必要的,车速可以用来调节我们供给马达的能量。主要是在起步时,我们想要传递最大的能量来使到汽车达到所需的速度。与此同时,这是一个非常好的挑战,在那里我们想要走得非常慢。如果我们转弯,会有传统的摩擦力使我们的车停下来,并永远保持住它。所以如果编码器告诉我们,我们被卡住了,那么它可以把额外的动力投入到马达中,这样我们就会再次开始移动。

编码器产生两个信号称为A相和B相,我们很幸运,我们的控制器已经包含了正交解码器(编码器数据读取)的硬件模块,这使我们能够在0%的CPU占用下高速读取编码器。

解码非常简单,如果信号导通在A相上,那么编码器是向前移动的。

如果信号导联在B相上,则编码器向后移动。

它实际上是通过在任一相位上存在边沿时递增/递减来工作的。如果您打算使用控制器而不使用硬件解码器,并且需要编写自己的软件,则此实现非常重要。您可以在第1072页的K64F文档中找到八种可能的状态,也可以从下图中提取它们:

在硬件和软件方面,它的工作非常简单。我们向电机输入PWM信号,该信号调节有多少功率可以进入电机。但令人悲伤的是,能量与速度不成正比。因此,我们得到我们的当前速度使用编码器,通过这一点,我们可以计算误差从期望的速度。然后我们把这个误差传递到PID调节器(这代表比例,积分和微分调节器),它调节应该进入电机的功率以达到我们期望的速度。

同样,为了使工作一切正确,那么我们将需要使用凹面,就像相机。我选择使用PIT3,它将每秒执行20次,每次它被执行时,它将读取编码器从上次读取移动了多远,将此值传递到PID调节器并更新电机速度。我们使用这个凹面,因为如果我们只是读取并将数值相加,那么我们就会得到距离。为了计算速度,我们可以使用这个小学方程:

  1. 速度=距离/时间

在我们的情况下,时间将始终为50ms,距离将是编码器的位置在上次读取时改变的量。

显示

我们使用的是工具包附带的显示器SD1306,通过SPI控制。被用于不同的菜单和诊断信息,使控制汽车更方便快捷。为了控制显示,我们使用u8g2库,它很容易移植到其他设备,这一系列控制是为arduino制作的,为了简单地有效地处理基本文本和位图。 

通讯

在比赛的过程中,给汽车附加任何电脑或无线设备都是违反规则的。所以竞赛时,就用上面介绍的OLED显示器配合按钮来控制汽车。但是当我们不是在比赛,而是在调试的时候,那么我们要用两个东西来调试。

首先是通过USB连接器。它使我们能够对微控制器进行编程,也使我们能够与设备进行稳定,快速的通信。其次是蓝牙。当我们在赛道上测试赛车时我们使用蓝牙,因为USB连接线太短,我们不能保持USB电缆连接状态,很容易绞入车轮或者失联。

单MCU架构还是多MCU架构?

这个问题可能有点困难,并且取决于很多东西和正确的架构设计。但首先我们应该知道MCU到底是什么。MCU代表微控制器单元。它包含可以运行代码的芯片,处理数据等,它也包含不同功能的引脚(大多数知道的功能是输入和输出)。让我们看看每种可能性的好处。

单MCU:

  • 价格低
  • 无需等待数据延迟和CPU通信开销
  • 小空间

多MCU:

  • 更高的处理能力
  • 更多 I/O

我已经为我的项目选择了单MCU架构,我来解释为什么。

第一个原因很简单。我用我手中现成的东西。我有能力使用KL25Z微控制器或K64F微控制器。(我认为这些都是比赛中最常见的MCU,因此本小指南也可以帮助其他人选择正确的MCU.)我有性能简洁的K64F,也能在任何元件失灵的条件下有更多的MCU替换选项。而且K64F比KL25Z更强大,具有2.5倍以上的CPU速度,8倍以上的闪存,16倍以上的RAM。此外,K64F还包含用于除法,浮点计算和更快的中断执行的指令,因此CPU实际上比2.5倍更快。K64F还有一些其他的优势,比如编码器的硬件支持,这将在KL25Z占用大量的CPU。 

既然KL25Z有了这样的处理能力,没必要同时使用两个。但让我们更详细地研究一下,考虑一下我们所做的以及其他一些事情。 

这里是双MCU架构的示例图像:

理想很丰满,现实很骨感,当现实中实际应用的时候,问题就会出现。

MCU1的目标是从加速度计,陀螺仪和摄像机中获取数据,从而进行所有所需的计算,以知道每台电机的正确速度、伺服机构的位置等。MCU2还可以获得激光,因此在需要时MCU2可以设置汽车在什么轨道上行驶,并在此基础上忽略激光,当它看到障碍物或躲闪障碍物时将速度设置为零。
 

MCU2将使用所有这些数据来设置正确的伺服位置,从编码器获得数据,并根据MCU1的期望速度设置电机功率。它还可以控制步进器移动摄像机。此外,它将包括所有的通信蓝牙和创建用户界面显示和按钮。

所有的东西看起来都很好地分开了,处理也应该很好地分开,但是让我们看看硬件的预见性,看看它是如何工作的。

这两个器件之间最快的通信方式是通过SPI总线。K64F上SPI总线频率的硬件限制为30 Mhz,KL25Z上为12 Mhz。这意味着3.75Mbps或1.5Mbps。这些速度并不差,但这些处理器以480Mbps或192Mbps的速度与寄存器通信,因此差异是巨大的。

假设MCU1决定改变电机的速度。它需要检查SPI总线是否空闲,或者等待它空闲,这会消耗CPU。然后它将以较慢的速度通过SPI总线传输+它需要包含控制字节,因此我们知道这些值的含义。之后,MCU2将需要检查它是否收到任何东西,它的意思是什么,然后最后设置电机速度。主要的好处是在二级MCU上计算PID,因此卸载MCU1用于相机数据处理,但它只需要大约5个FPU的计算,这是K64F本地支持的,他们真的很快。电机PWM的设置是在480Mbps的速率下,两个4字节写入存储器的问题。PWM由硬件产生,因此它不给CPU带来任何负载。

如果MCU1本身有电机和编码器,那么它可以自己进行FPU计算,然后对存储器进行简单的写操作来设置电机的速度,这将花费大约相同的处理器时间将这些数据传送到MCU2。

当我们谈到电机时,我们可以关注一下编码器。它实际上没有使用任何CPU,因为K64F有硬件支持,所以无论它是多快的旋转,它将仍然使用没有CPU。但是如果你打算用KL25Z构建它,那么它可能会很有用,因为它没有对编码器的硬件支持。由于没有这种支持,它必须使用中断来添加这种支持,因此这意味着至少30个中断周期,每个磁盘孔4个中断,每个磁盘10个孔,每秒100个轮子旋转。当然,这些只是样本数字,它们肯定可以更高或更低。但是他们估计4800万个循环中有12万个循环是可行的,这些数字听起来并不是很高,但是把它们放到MCU2中可能会很有趣。但这不是我的情况,因为我使用的是K64F。

伺服系统和马达是一样的。它们也依赖于PWM,PWM只需两次写入存储器,而且卸载PID计算的可用性也有所降低,因此这实际上更加无用。

让我们看看显示和按钮。起初,将它们卸载到次级MCU中听起来也很酷,因为这将再次为处理相机数据提供更大的处理能力。但遗憾的是,这又一次变得无用了,因为我们不需要那些按钮和显示器,当汽车行驶时,也就是处理相机数据的时刻。所以它总是运行,要么是带有按钮的dipslay,要么是带有传感器的摄像头。当然,当我们想调试我们的汽车时,我们希望看到显示器显示结果从摄像头,所以两者都应该运行,但在这种情况下,我们并不关心下降到20fps,因为它真的不重要,我们的眼睛,并会给我们足够好的印象。

接下来就是蓝牙了。如果它仅用于读取电机速度,编码器数据和伺服数据,那么它是有用的,因为所有这些数据都可以缓存在MCU2中,并且只需发送到另一个蓝牙设备,而无需与MCU1通话。但是如果你决定通过蓝牙发送其他东西,比如原始的相机数据,那么它就没有多大用处了,因为MCU2通常无法访问相机数据,需要向MCU1请求。这需要通过SPI将数据发送到MCU2,但如果蓝牙模块将直接挂接到MCU1并通过UART将数据发送到蓝牙模块,则没有太大的区别。

最后是步进电机。它的卸载可以是有用的,如果我们想移动它的位置更大的ammount,如果我们正在驾驶。但这也是需要的情况下,我们不会关心什么是当前的位置,电机,这是不经常发生的,当我们开车,至少不是在我们的情况。否则,一步移动电机只需在内存中写两次,我们就能准确地知道电机在哪里,没有延迟。

所以我们现在能够看到整体的结果。有点偏负到中性,但对KL25Z来说有点偏正。但是翻倍也是增加成本,而使用单人K64F就更好了。同时需要同时对两个芯片进行编程和调试,这就增加了测试的复杂度。所以现在你可以明白为什么我选择单人K64F了。

但是正如我所说的,双MCU在更多的I/O方面具有冒险作用,而我遇到了单MCU构建的问题。K64F的I/O引脚比KL25Z少,这在一定程度上也造成了这个问题,所以让我们来看看我的架构。

我能够连接所有组件,这需要高速通信直接到MCU。在MCU上,我还通过I2C连接了16口I/O扩展器,与陀螺仪和加速度计共享,这样就不需要在MCU中使用更多的引脚。它只连接一些元件,这些元件对检测率要求很低,如开关和按钮,而且它们也不需要在汽车行驶中进行检测,因此I2C总线将完全免费用于陀螺仪和加速度计。还有蓝牙模块的连接状态和使能引脚,只需在汽车启动时使用一次模块配置。在所有这些之后,我留下了接下来的5个未使用的引脚,我焊接头,并可能使用他们的外部元件。

3D部件生产过程

在现代,3D打印机已经成为爱好者非常有用的工具。如果你想做一些家庭项目,几乎有必要拥有一个。但当你有一台3D打印机时,打印是制造过程中最简单的部分,因为在你开始打印之前,你必须先制作一个数字3D模型。我家里有两台3D打印机,显然是市场上最便宜的,因为我是一个收入很低的学生。但这只是意味着,即使用很少的钱,你也能做出大东西。如果你想设计自己的零件并打印它们,你需要以下三件东西:

  • 3D 建模软件
  • 3D 切片机
  • 3D 打印机

你应该使用哪种3D建模软件取决于你想要制作什么东西。例如,如果你想要制作一个雕像,你可能不应该使用工程软件,而应该使用一个有适合你将要执行的操作的工具的软件。我最喜欢的创建数字模型的程序是FreeCAD。它功能强大,源代码开放,易于使用。这部分制作的最终产品是一个。stl文件,其中包含您的数字模型。实际上,如果您想复制这个项目并调整您的恩智浦汽车,您可以跳过这一部分,因为这些。stl模型实际上是我制作的,所以您可以下载它们。制造过程中的下一个部分是3D切片器,在该切片器中,您的数字模型可以被切片成薄层。如果你想找一个专业的切片机与吨的选择,我可以推荐你库拉。您可以在此指定打印过程并选择最终产品的属性。选择的打印速度,温度和其他“细节”是很重要的,如果你搞砸了它,就会毁了你的结果。有时候它只需要耐心和从错误中学习。当你的模型准备好制作,切片器将生成一个G代码文件,这基本上是一个有限程序为你的3D打印机。

定制部件装配说明

  • 在开始之前,请确保您的NXP汽车(Alamak汽车套件)的型号完全相同,否则这些部件将无法安装
  • 下载 stl 文件
  • 打开你的3D模型切片器,选择合适的打印属性
  • 打印出来(材质不重要,但是我用了PLA和ABS)
  • 正确组装。让这些图片指引你走向成功。

你可以在以下链接检查所有的型号 https://www.thingiverse.com/thing:4319473

 

主板

当我们计划好所有其他硬件时,我们意识到我们遇到了问题。默认主板提供的汽车套件有不同的引脚排列比我们需要的,并没有支持我们所有的硬件。此外,我们希望最大的计算速度为这张卡,所以我们决定使用K64F而不是KL25Z控制器。而且这些控制器有不同的引脚排列,所以我们连我们汽车的大脑都不能装进主板,所以我们开始设计我们的新主板。

我使用 EasyEda ,一个非常简单的工具,用于制作原理图,并把它们变成PCB布局。

我们增加了旧板上的一些重要部件,如6V小型电源,为伺服电机供电。或者按钮,但是我们对它们进行了修改,使它们不像单个模拟元件那样工作,这就有点难以获得按压,所以我们不能使用经典的去抖,还有一个问题是可以按下多个键,这使得提取真实值有点困难,而且这将需要使用我们用于相机的A/D转换器,所以它可以降低最大fps。

然后我们添加了一些新的部分,例如外部I2C以便于添加I2C模块,陀螺仪以便于更好地计算汽车运动,开关和适当的显示器安装。因为我们已经添加了所有这些东西,并且我们使用了更少引脚的控制器,我们还需要添加I/O扩展器来增加可用I/O端口的数量。

PCB的布局设计将适合现有的电机板和其他部分,如SD1306显示器和K64F控制器。

这是5件新的作品,它们刚刚从中国运来:

残酷的现实

遗憾的是,我们订购的板子和组件太晚了。当我们准备焊接的时候,学校因为COVID-19(新冠病毒疫情)关闭了,而我家里没有正确的SMD焊接设备。所以为了临时解决这个问题,我用了很多电线和胶带,然后把所有东西都放在一起。你可以自己看看我的结果。

但是这个状态应该足够测试了。我们有马达,伺服,步进器,编码器和K64F工作,但这将是很好的一切在更稳定的形式。现在,连接有时会出现问题,所以伺服系统有时会随机移动,无一例外的情况会发生。我们还缺少一些功能,如陀螺仪和按钮。

与残酷的现实抗争

我已经等了一段时间,如果学校终于开学,我将能够继续我的工作。但似乎还要关闭一段时间。所以我决定去我的学校,挑选一些我放在我的储物柜里的零件,并决定试着把它全部焊接在我自己的地方。我没有空气焊锡站,液体焊剂,也没有镊子。但我设法焊接了所有的部件,并主要检查他们是否工作。

这是焊接开始时的图像。但是已经有很多工作完成了。你可能一眼就能看到按钮,但如果你看得更详细,你会看到一些电容焊接,如果你看得更详细,你会看到电阻。它们的尺寸是0402 (0.4x0.2mm),看起来就像一个小黑点。
 
你还可以看到没有元件的黄色滴物。这是我对缺失的液体焊剂的解。在我焊接任何元件之前,我加热我的烙铁到200度。这个温度是理想的,因为它使焊剂变成液体,但不会蒸发或冒烟。我做的第一件事是我插入我的烙铁到固态焊剂,然后把它移动到上面的板。在这一刻,应该有足够的流量在尖端。然后我用尖端接触板,把焊剂转到板上。
 

这种添加助焊剂的工艺是必要的,因为如果您试图在焊接温度(我使用350°)下获得助焊剂,那么助焊剂不会停留在尖端,因此无法到达电路板和元件上。

当焊剂到达所有要焊接当前组件的点后,您可以将烙铁调至焊接温度。待烙铁加热后,将元件放置在电路板上。如果您要焊接电容或电阻,则将元件放置在助焊剂旁边,然后将烙铁的尖端放置在元件的侧面,使其最大可能接触到元件,并将元件推向助焊剂。这将把热量通过组件传递到熔剂上,这样熔剂就会熔化,组件就会在熔剂内。极短时间后,助焊剂将激活并清除电路板和元件焊盘。仍然用这种方式握住烙铁,并用锡接触两个元件焊盘。在这之后,应该有你的部件与熔化的锡在它的位置,然后你应该移除烙铁。

这需要一些练习,因为元件粘在烙铁上,或者在焊盘上旋转,甚至站立(它们旋转90度,就像它们在单个焊盘上指向和站立的方式)。这通常是由于只有一个焊盘上有锡造成的。此外,您还应记住,连接到接地层的焊盘能够吸收大量热量。所以你应该加热他们更长的时间,甚至像10秒,这样组件正确地粘在一起。你应该能看到锡球的小变化,因为它正确地贴在地平面上(这种变化真的很快,需要半秒)。

如果你能使用液体焊剂或空气焊锡站,那么一定要使用它。它比这种方式容易得多。

这里我焊接了所有的按钮和开关,还有大部分的电容和电阻。

我现在将解释为什么我先焊接像开关和按钮这样的较大部件,然后再焊接较小的部件,即使先焊接小部件是更好的做法。

原因很简单。我希望我的董事会测试尽可能好,并正在工作的第一次尝试。我主要是在焊接I/O扩展器之前焊接那些组件,因为这会使测试更加困难。我通过触摸I/O扩展器上正确的焊盘(属于被测试按钮或开关)和其他3.3V或接地来测试这些组件。当第二个焊盘接地时,电阻率应为10 kΩ。如果电阻率为零,则说明接地电阻短路;如果电阻率为无穷大,则说明某部分连接不良。当第二个焊盘为3.3 V时,电阻率应为无穷大,但按下按钮时,电阻率应变为1 kΩ。如果没有发生这种情况,那么您的电路中又出现了一些问题。开关的测试方式与按钮相同。

你还应该检查所有的电容。大部分都在某个电源轨上。电池有四个电源轨,分别为6V,5V和3.3V。当你焊接电容器,然后检查它属于什么轨道,并测量那里的容量。应随焊接电容的大小而增大。大多数情况下,所有电容都是100nF,因此应该增加到这个值。如果这是焊接到轨上的第一个电容,则容量应为100nF。当你测量了钢轨的能力后,你应该得到正确的值。如果万用表不能测量容量,那就意味着你短路了。如果它测量的是不变的容量,那么就意味着电容和板卡之间存在不良的连接。

此外,我建议在电阻或任何其他元件焊接到轨之前先焊接电容,因为这样您将无法测量之后的容量。当你在测量电阻时,那么你应该在它们连接的地方找到两个正确的焊盘,并检查是否存在短路或连接不良。

第二次与残酷的现实抗争

现在我可以告诉你:在有很多支腿的小部件上涂上尽可能少的锡。

如果你会拿很多锡放在腿上,那么它们就会连接在一起,你将有一个很大的问题,去除它。当你尝试焊接像这样的组件,然后采取尽可能多的少量锡,并尝试焊接它。如果量不够,就慢慢加锡。当我焊接它的时候,我以为我只是添加了理想的数量,但它太多了。第二个问题是我试了很长一段时间去锡,直到一些焊盘从板上脱出。我可以再次说,如果这发生在你,然后老学校锡提取器工作刚刚好,并尝试芬兰你的去除尽快。

我也会给出几个字,我是如何修复那些与电路板断开的引脚的。我发现最好检查工具是强光灯,你应该把PCB放在灯前面,它会透过,这样你就能很好地看到连接的痕迹或缺失的痕迹。我很幸运,所有的痕迹仍然是连接的,它们只是从原来的位置移动,触摸其他垫。解决这个问题的最简单方法是将烙铁加热到更高的温度,然后移动轨道,这样它们就不会相互接触,甚至可以将它们从电路板上拿起来放在组件的腿上。

我撒了点谎。有一条线从板上断开了。它是从I/O扩展器的中断引脚跟踪的。我原计划通过将中断引脚连接到板上正确位置来修复它,但我决定不修复此引脚,并保持断开状态,因为我还不需要此IC的任何中断。但是将来如果我决定将某些东西连接到GPIO报头,需要迭代的话,修复它可能是很重要的。

在焊接几乎所有元件后,您可以看到以下结果:

只有缺少连接K64F的头,因为这是我需要做的最后一件事,也是最高的组件。但在我焊接它之前,我通过底部的连接器将这块板连接到电机板。这允许我检查电池和6V轨是否工作。当两个蓝色LED亮起时,它被检测得非常快。如果发光二极管点亮,没有元件爆炸,可能一切都正常工作。现在也是带螺丝刀和万用表的好时机。将万用表连接到6V轨并测量电压。它可能会有点偏离6V。现在拿螺丝刀,用板上的蓝色电位器慢慢转动,直到你把6V轨的电压调到6V。

现在焊接那些剩余的头部和连接K64F。现在是时候希望一切都焊接正确,你可以测试出来。上传一些显示的程序,看看它是否亮起来,然后伺服,相机等。我希望它都能为你工作。对我来说,幸运的是,第一次尝试就成功了。

好用吗?

我们已经建好了自己的跑道,我们的车正在开动!它还不是完美的,但它是可行的,我们将继续努力,直到比赛来临,赢得它。

未来的计划

我们可能还将使用超声波传感器与激光一号一起获得更精确的结果,当搜索轨道上的立方体。此外,我们需要完成我们的代码,使我们的赛车正常运行,但我们有很多时间,因为新冠肺炎推迟了比赛,并没有新的日期。

如何制作自己的测试轨道

如果你有兴趣像我一样做你自己的轨道,你将需要一大卷纸。我不知道具体大小,但你可以看到它很大。你必须把那些巨大的纸放在一起,然后用透明胶带,这样它才能粘在地上。你应该用铅笔画出你的轨迹,因为如果你画错了,很容易修复这个问题。当你确定你已经正确地设计了你的轨道,然后使用黑色的电子胶带使所有这些边缘。

这个BOM包含了所有需要的部件,除了超高的头部,因为BOM是从原理图自动生成的,并且没有正确大小的超高头部,所以你需要手动将它们分成更小的部分。链接如下:

https://lcsc.com/product-detail/Pin-Header-Female-Header_BOOMELE-Boom-Precision-Elec-C51353_C51353.html

BOM

新的主板

 

CAD, 外壳和定制部件

包括以下文件 (全部下载):

Back shield.stl 2020-09-04 11:59 36K  
Bumper.stl 2020-09-04 11:59 51K  
Camera case holder.stl 2020-09-04 11:59 24K  
Camera large gear.stl 2020-09-04 11:59 801K  
Camera mount part 1.stl 2020-09-04 11:59 38K  
Camera mount part 2.stl 2020-09-04 11:59 37K  
Camera small gear.stl 2020-09-04 11:59 79K  
Camera stepper endstop platform.stl 2020-09-04 11:59 13K  
Case for camera.stl 2020-09-04 11:59 42K  
Encoder enclosure.stl 2020-09-04 11:59 67K  
Front block.stl 2020-09-04 11:59 98K  
In gear rivet.stl 2020-09-04 11:59 15K  
New main board - gerber board outline.GKO 2020-09-04 11:59 1.2K  
New main board - gerber bottom layer.GBL 2020-09-04 11:59 392K  
New main board - gerber bottom silk layer.GBO 2020-09-04 11:59 129K  
New main board - gerber bottom solder mask layer.GBS 2020-09-04 11:59 6.0K  
New main board - gerber drill NPTH.DRL 2020-09-04 11:59 445  
New main board - gerber drill PTH.DRL 2020-09-04 11:59 4.3K  
New main board - gerber top layer.GTL 2020-09-04 11:59 629K  
New main board - gerber top paste mask layer.GTP 2020-09-04 11:59 5.4K  
New main board - gerber top silk layer.GTO 2020-09-04 11:59 140K  
New main board - gerber top solder mask layer.GTS 2020-09-04 11:59 28K  
Slope platform.stl 2020-09-04 11:59 37K
 

代码

主要控制代码

这个文件控制servos和马达如何根据所有输入参数工作

mainControlCode.txt

设置和控制外围设备

这段代码提供所有功能从主代码来控制所有外设,获得所有传感器的信息。

 

登陆


Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as the key parameter for array_key_exists() is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/cbPluginHandler.php on line 323

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/libraries/src/Menu/AbstractMenu.php on line 164

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php on line 217

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php on line 219

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php on line 227

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php on line 231

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php on line 234

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php on line 237

Deprecated: Using null as an array offset is deprecated, use an empty string instead in /var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php on line 239

Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /var/www/html/plugins/system/falangdriver/falangdriver.php on line 100

Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /var/www/html/plugins/system/falangdriver/falangdriver.php on line 100
mysqli object is already closed (500 Whoops, looks like something went wrong.)</a> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/bbcode/url/default.php --> <br> <br> <b>Code:</b><br> <br> <b>Main control code</b><br> This file controls how should servos and motors behave based on all inputs <div class="bbcode_code"> <div class="bbcode_code_head">Code:</div> <div class="bbcode_code_body" style="white-space:pre">/* * Copyright 2016-2020 NXP * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, this list * of conditions and the following disclaimer. * * o Redistributions in binary form must reproduce the above copyright notice, this * list of conditions and the following disclaimer in the documentation and/or * other materials provided with the distribution. * * o Neither the name of NXP Semiconductor, Inc. nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * @file nxpcup.cpp * @brief Application entry point. */ #include <stdio.h> #include "board.h" #include "peripherals.h" #include "pin_mux.h" #include "clock_config.h" #include "MK64F12.h" #include "fsl_debug_console.h" #include "tfc.h" class PID { private: const float kP, kD, kI, maxkI; float sum = 0, lastErr = 0; public: int calculate(float error, float frequency) { sum += error*kI/frequency; if(sum>maxkI) { sum = maxkI; } else if(sum<-maxkI) { sum = -maxkI; } float deriv = (lastErr - error)*frequency; float toReturn = error*kP + deriv*kD + sum; lastErr = error; return toReturn; } PID(float kP, float kD, float kI, float maxkI) : kP(kP), kD(kD), kI(kI), maxkI(maxkI) {}; }; PID pidMotors(3.5f, 0, 0, 1000); // PID which is used to control motors void setMotorsSpeed(float desiredSpeed) { int pwmSpeed = pidMotors.calculate(desiredSpeed-Encoder::currentSpeed, Encoder::readsPerSecond); if(pwmSpeed < -1000) pwmSpeed = -1000; if(pwmSpeed > 1000) pwmSpeed = 1000; Motor::setLMotorSpeed(pwmSpeed); Motor::setRMotorSpeed(pwmSpeed); } float desiredSpeed = 0; void onEncoderUpdate() { // function which is called from tfc.h when there are new encoder results setMotorsSpeed(desiredSpeed); } char smer = 0; char wrongSmer = 0; unsigned short lastPos = 0; struct Line { char pos; char thick; }; struct Lines { struct Line lines[32]; int linesCount; }; void getLinesByDerivation(unsigned short* image, struct Lines* lines) { // get all lines from image short lineBegin = -1; char startOfLineFound = 0; for(int i=4; i<125; i++) { // we apply derivation on all parts of image and if values are high enough, then we store it as line short derivated = (short)image[i-4] + (short)image[i-3] + (short)image[i-2] + (short)image[i-1] - (short)image[i+0] - (short)image[i+1] - (short)image[i+2] - (short)image[i+3]; if(derivated<-150 && startOfLineFound) { if(lineBegin == -1) lineBegin = 4; short linePos = lineBegin + ((i - lineBegin) >> 1); lines->lines[lines->linesCount].pos = linePos; lines->lines[lines->linesCount].thick = ((i - lineBegin) >> 1); lines->linesCount++; startOfLineFound = 0; } else if(derivated>150) { startOfLineFound = 1; lineBegin = i; } } } void getLinesPos(struct Lines *lines, short *left, short *right) { // find left and right line, used on boot *left = -1; *right = -1; for(int i=0; i<lines->linesCount; i++) { if(lines->lines[i].pos<64 && *left == -1) { // check if line is in left part of image and is first left line *left = i; } if(lines->lines[i].pos>=64) { // check if line is in right part of image *right = i; } } } short getClosestLine(struct Lines *lines, short pos) { // get closest line to given position short ret = -999; short lastDistance = 999; for(int i=0; i<lines->linesCount; i++) { short newDistance = lines->lines[i].pos - pos; if(newDistance<0) newDistance = - newDistance; if(newDistance<lastDistance) { ret = lines->lines[i].pos; lastDistance = newDistance; } } if(ret==-999) return -1; return ret; } short leftLine = -1; short rightLine = -1; /* * @brief Application entry point. */ int main(void) { /* Init board hardware. */ BOARD_InitBootPins(); BOARD_InitBootClocks(); BOARD_InitBootPeripherals(); /* Init FSL debug console. */ BOARD_InitDebugConsole(); PRINTF("Hello World\n"); // this is here to check if USB serial is working setupTFC(); // setup whole main board and it's components cameraInitialCalibration(); // here we calibrate camera while(1) { if(UART3->RCFIFO != 0U) { // here we async check if there any received data from BT char ch = UART3->D; // if so, then we read those data switch(ch) { // we set speed based on data case 'a': desiredSpeed = 40; break; case 'b': desiredSpeed = 20; break; case 'c': desiredSpeed = 0; break; } UART0->D = ch; // here we clone data to USB serial UART3->D = ch; // and here we clone data to BT serial } unsigned short* image = getNextImage(); // here we try to get next image from camera if(!image) continue; // if we havent got image, we will try it next time struct Lines lines = {0}; getLinesByDerivation(image, &lines); if(leftLine == -1 || rightLine == -1) { // if line positions are unset, we try to get them getLinesPos(&lines, &leftLine, &rightLine); } else { // we search based on previous line positions if(lines.linesCount==0) { // if we hadn't found any lines, then we set servo to center setServoPos(0); continue; } short newLeft = getClosestLine(&lines, leftLine); // we get closest line to left line short newRight = getClosestLine(&lines, rightLine); // we get closest line to right line if(newLeft == newRight) { // if the lines are same, then we choose to which line will the new line be set short newLeftDistance = newLeft - leftLine; short newRightDistance = newRight - rightLine; if(newLeftDistance<0) newLeftDistance = -newLeftDistance; if(newRightDistance<0) newRightDistance = -newRightDistance; if(newLeftDistance<newRightDistance && newLeft != -1) { leftLine = newLeft; } else if(newRightDistance<newLeftDistance && newRight != -1) { rightLine = newRight; } } else { // if new lines are different short newLeftDistance = newLeft - leftLine; // calculate line distance form previous position short newRightDistance = newRight - rightLine; // calculate line distance form previous position short linesDistance = newRight - newLeft; // calculate distance between left and right line if(newLeftDistance<0) newLeftDistance = -newLeftDistance; // get absolute value if(newRightDistance<0) newRightDistance = -newRightDistance; // get absolute value if(linesDistance>70) { // make sure that lines are far enough from themself leftLine = newLeft; rightLine = newRight; } else { // if they arent then, pick the one which is closest to its previous position if(newLeftDistance<newRightDistance) { leftLine = newLeft; } else if(newRightDistance<newLeftDistance) { rightLine = newRight; } } } if(leftLine!=-1 && rightLine !=-1) { // if both lines are set, then we set servo to position based on them short middlePos = leftLine + rightLine; middlePos -= 128; // by this we make middle value 0 middlePos = (middlePos*4.0f); if(middlePos < -100 ) middlePos = -100; if(middlePos > 100) middlePos = 100; setServoPos(-middlePos); } } } return 0; }</div> </div> <br> <b>Setup and control of peripherals</b><br> This code should supply all functions to control all peripherals from main code and get all informations from all sensors.<br> <div class="bbcode_code"> <div class="bbcode_code_head">Code:</div> <div class="bbcode_code_body" style="white-space:pre">#ifndef __TFC_H__ #define __TFC_H__ #include "fsl_ftm.h" #include "fsl_i2c.h" #include "fsl_adc16.h" #include "fsl_pit.h" #include "fsl_uart.h" #include "fsl_dspi.h" #define SERVO_MODULO 9375 // (ftmClock / pwmFreq_Hz) - 1 volatile unsigned int servoPos = 0; // access this variable to set servo pos volatile unsigned int laserPos = 655; void setupServo(int startupVal) { servoPos = 700 + startupVal; ftm_config_t ftmConfig; FTM_GetDefaultConfig(&ftmConfig); ftmConfig.prescale = kFTM_Prescale_Divide_128; FTM_Init(FTM0, &ftmConfig); FTM0->SC &= ~FTM_SC_CPWMS_MASK; FTM0->MOD = SERVO_MODULO; /* Clear the current mode and edge level bits */ uint32_t reg = FTM0->CONTROLS[1].CnSC; reg &= ~(FTM_CnSC_MSA_MASK | FTM_CnSC_MSB_MASK | FTM_CnSC_ELSA_MASK | FTM_CnSC_ELSB_MASK); /* Setup the active level */ reg |= (uint32_t)kFTM_HighTrue << FTM_CnSC_ELSA_SHIFT; /* Edge-aligned mode needs MSB to be 1, don't care for Center-aligned mode */ reg |= FTM_CnSC_MSB(1U); /* Update the mode and edge level */ FTM0->CONTROLS[1].CnSC = reg; FTM0->CONTROLS[1].CnV = servoPos; /* Clear the current mode and edge level bits */ reg = FTM0->CONTROLS[2].CnSC; reg &= ~(FTM_CnSC_MSA_MASK | FTM_CnSC_MSB_MASK | FTM_CnSC_ELSA_MASK | FTM_CnSC_ELSB_MASK); /* Setup the active level */ reg |= (uint32_t)kFTM_HighTrue << FTM_CnSC_ELSA_SHIFT; /* Edge-aligned mode needs MSB to be 1, don't care for Center-aligned mode */ reg |= FTM_CnSC_MSB(1U); /* Update the mode and edge level */ FTM0->CONTROLS[2].CnSC = reg; FTM0->CONTROLS[2].CnV = servoPos; FTM0->SC |= FTM_SC_TOIE_MASK; // enable FTM0 overflow iterrupt PORTC->PCR[2] = PORT_PCR_MUX(4); PORTC->PCR[3] = PORT_PCR_MUX(4); FTM_StartTimer(FTM0, kFTM_SystemClock); NVIC_EnableIRQ(FTM0_IRQn); FTM_EnableInterrupts(FTM0, kFTM_TimeOverflowInterruptEnable); } char getLaserState() { // TODO return 0; } void setServoPos(int pos) { servoPos = 700 + pos; } void setLaserPos(unsigned int pos) { laserPos = pos; } /*extern */volatile short noSee; char isLaserDecreasing = 0; char isLaserSearching = 0; volatile char isObstacleUpdated = 0; volatile int obstaclePos = 0; volatile int endObstaclePos = 0; volatile int obstacleSize = 0; volatile char isObtacleHere = 0; char __laserColisonStarted = 0; int __laserColisionBegin = 0; extern "C" { void FTM0_IRQHandler(void) { if(!(FTM0->SC&FTM_SC_TOF_MASK)) return; FTM0->SC &= ~(FTM_SC_TOF_MASK); FTM0->CONTROLS[1].CnV = servoPos; if(isLaserSearching) { char currentLaserState = getLaserState(); if(!__laserColisonStarted && currentLaserState) { __laserColisonStarted = 1; __laserColisionBegin = laserPos; isObtacleHere = 1; } else if(__laserColisonStarted && !currentLaserState) { __laserColisonStarted = 0; isLaserDecreasing = !isLaserDecreasing; isObstacleUpdated = 1; isObtacleHere = 1; obstacleSize = __laserColisionBegin - laserPos; if(obstacleSize<0) { obstacleSize = -obstacleSize; } obstacleSize >>= 1; //obstaclePos = __laserColisionBegin + laserPos; int middleDistanceOld = __laserColisionBegin - 543; int middleDistanceNew = laserPos - 543; if(middleDistanceOld<0) middleDistanceOld = -middleDistanceOld; if(middleDistanceNew<0) middleDistanceNew = -middleDistanceNew; if(middleDistanceOld<middleDistanceNew) { obstaclePos = __laserColisionBegin<<1; endObstaclePos = laserPos; } else { obstaclePos = laserPos<<1; endObstaclePos = __laserColisionBegin; } obstaclePos >>= 1; obstaclePos -= 543; // based on servo middle obstaclePos = -obstaclePos; endObstaclePos -= 543; // based on servo middle endObstaclePos = -obstaclePos; } if(!isLaserDecreasing) { if(__laserColisonStarted) { laserPos += 20; } else { laserPos += 3; //30; } } else { if(__laserColisonStarted) { laserPos -= 20; } else { laserPos -= 3; //30; } } // https://servodatabase.com/servo/towerpro/sg90 // 0,5ms to 2,5ms if(laserPos<=187) { // 187 isLaserDecreasing = 0; if(__laserColisonStarted) { __laserColisonStarted = 0; isObstacleUpdated = 1; isObtacleHere = 1; obstacleSize = __laserColisionBegin - laserPos; if(obstacleSize<0) { obstacleSize = -obstacleSize; } obstacleSize >>= 1; //obstaclePos = __laserColisionBegin + laserPos; int middleDistanceOld = __laserColisionBegin - 543; int middleDistanceNew = laserPos - 543; if(middleDistanceOld<0) middleDistanceOld = -middleDistanceOld; if(middleDistanceNew<0) middleDistanceNew = -middleDistanceNew; if(middleDistanceOld<middleDistanceNew) { obstaclePos = __laserColisionBegin<<1; endObstaclePos = laserPos; } else { obstaclePos = laserPos<<1; endObstaclePos = __laserColisionBegin; } obstaclePos >>= 1; obstaclePos -= 543; // based on servo middle obstaclePos = -obstaclePos; endObstaclePos -= 543; // based on servo middle endObstaclePos = -obstaclePos; } else { isObtacleHere = 0; obstacleSize = 0; obstaclePos = 0; endObstaclePos = 0; } } else if(laserPos>=900) { // 938 isLaserDecreasing = 1; if(__laserColisonStarted) { __laserColisonStarted = 0; isObstacleUpdated = 1; isObtacleHere = 1; obstacleSize = __laserColisionBegin - laserPos; if(obstacleSize<0) { obstacleSize = -obstacleSize; } obstacleSize>>=1; //obstaclePos = __laserColisionBegin + laserPos; int middleDistanceOld = __laserColisionBegin - 543; int middleDistanceNew = laserPos - 543; if(middleDistanceOld<0) middleDistanceOld = -middleDistanceOld; if(middleDistanceNew<0) middleDistanceNew = -middleDistanceNew; if(middleDistanceOld<middleDistanceNew) { obstaclePos = __laserColisionBegin<<1; endObstaclePos = laserPos; } else { obstaclePos = laserPos<<1; endObstaclePos = __laserColisionBegin; } obstaclePos >>= 1; obstaclePos -= 543; // based on servo middle obstaclePos = -obstaclePos; endObstaclePos -= 543; // based on servo middle endObstaclePos = -obstaclePos; } else { isObtacleHere = 0; obstacleSize = 0; obstaclePos = 0; endObstaclePos = 0; } } } FTM0->CONTROLS[2].CnV = laserPos; // we set servo at right time to prevent bad output FTM0->SYNC |= 1 << 7; // trigger SW sync noSee++; } } namespace Motor { const unsigned int MOTOR_MODULO = 1000; volatile int rMotorSpeed = 0; volatile int lMotorSpeed = 0; void initMotorChannel(int channel) { /* Clear the current mode and edge level bits */ uint32_t reg = FTM3->CONTROLS[channel].CnSC; reg &= ~(FTM_CnSC_MSA_MASK | FTM_CnSC_MSB_MASK | FTM_CnSC_ELSA_MASK | FTM_CnSC_ELSB_MASK); /* Setup the active level */ reg |= (uint32_t)(kFTM_HighTrue << FTM_CnSC_ELSA_SHIFT); /* Edge-aligned mode needs MSB to be 1, don't care for Center-aligned mode */ reg |= FTM_CnSC_MSB(1U); /* Update the mode and edge level */ FTM3->CONTROLS[channel].CnSC = reg; } void setup() { ftm_config_t ftmConfig; FTM_GetDefaultConfig(&ftmConfig); ftmConfig.prescale = kFTM_Prescale_Divide_64; FTM_Init(FTM3, &ftmConfig); FTM3->SC &= ~FTM_SC_CPWMS_MASK; FTM3->MOD = MOTOR_MODULO; // MOTOR R: ch4, ch5 // MOTOR L: ch1, ch0 initMotorChannel(0); initMotorChannel(1); initMotorChannel(4); initMotorChannel(5); ftm_chnl_pwm_signal_param_t pwmPar; pwmPar.chnlNumber = kFTM_Chnl_0; pwmPar.dutyCyclePercent = 0; pwmPar.enableDeadtime = false; pwmPar.firstEdgeDelayPercent = 0; pwmPar.level = kFTM_HighTrue; FTM_SetupPwm(FTM3, &pwmPar, 1, kFTM_EdgeAlignedPwm, 1000, 60000000); //int startupVal = MOTOR_MODULO >> 1; // MOTOR_MODULO / 2 for ability of back riding; 0 for forward only; MOTOR_MODULO for backward only FTM3->CONTROLS[1].CnV = 0; FTM3->CONTROLS[0].CnV = 0; FTM3->CONTROLS[4].CnV = 0; FTM3->CONTROLS[5].CnV = 0; FTM_StartTimer(FTM3, kFTM_SystemClock); PORTD->PCR[0] = PORT_PCR_MUX(4); PORTD->PCR[1] = PORT_PCR_MUX(4); PORTC->PCR[8] = PORT_PCR_MUX(3); PORTC->PCR[9] = PORT_PCR_MUX(3); FTM_StartTimer(FTM3, kFTM_SystemClock); NVIC_EnableIRQ(FTM3_IRQn); FTM_EnableInterrupts(FTM3, kFTM_TimeOverflowInterruptEnable); } inline void setLMotorSpeed(int speed) { lMotorSpeed = speed; } inline void setRMotorSpeed(int speed) { rMotorSpeed = speed; } }; extern "C" { void FTM3_IRQHandler() { // we need FTM3 interrupt, to update CnV to fix double update if(!(FTM3->SC&FTM_SC_TOF_MASK)) return; FTM3->SC &= ~(FTM_SC_TOF_MASK); int lSpeed = Motor::lMotorSpeed; if(lSpeed >= 0) { FTM3->CONTROLS[1].CnV = lSpeed; FTM3->CONTROLS[0].CnV = 0; } else { FTM3->CONTROLS[1].CnV = 0; FTM3->CONTROLS[0].CnV = -lSpeed; } int rSpeed = Motor::rMotorSpeed; if(rSpeed >= 0) { FTM3->CONTROLS[4].CnV = rSpeed; FTM3->CONTROLS[5].CnV = 0; } else { FTM3->CONTROLS[4].CnV = 0; FTM3->CONTROLS[5].CnV = -rSpeed; } FTM3->SYNC |= 1 << 7; // trigger SW sync } } void init_ADC16(void){ adc16_config_t config; ADC16_GetDefaultConfig(&config); config.resolution = kADC16_ResolutionSE10Bit; config.enableHighSpeed = true; ADC16_Init(ADC0, &config); ADC16_DoAutoCalibration(ADC0); } volatile unsigned char cameraPulseState = 0; volatile unsigned char generateSI = 0; volatile unsigned int cameraScanTime = 50000; volatile unsigned char currentCameraSwapBuffer = 0; volatile unsigned short cameraData[2][128]; // 2 swap buffers volatile unsigned char isCameraBufferReady[2] = {0}; volatile char isCameraPeriodReady = 0; volatile unsigned char cameraPeriodWriteCount[2]; inline void enablePIT(pit_chnl_t channel, uint32_t count) { PIT_StopTimer(PIT, channel); PIT_DisableInterrupts(PIT, channel, kPIT_TimerInterruptEnable); PIT_SetTimerPeriod(PIT, channel, count); PIT_StartTimer(PIT, channel); PIT_EnableInterrupts(PIT, channel, kPIT_TimerInterruptEnable); EnableIRQ(PIT0_IRQn); EnableIRQ(PIT1_IRQn); EnableIRQ(PIT2_IRQn); EnableIRQ(PIT3_IRQn); } void setupCamera() { init_ADC16(); PORTB->PCR[2] = PORT_PCR_MUX(0); // Camera ADC PORTC->PCR[7] = PORT_PCR_MUX(1); // Camera CLK PORTC->PCR[0] = PORT_PCR_MUX(1); // Camera SI PORTB->PCR[3] = PORT_PCR_MUX(1);// (0) // Camera ADC2 // it will work as switch for stepper detector PORTB->PCR[3] = PORT_PCR_MUX(1) | (1 << 24); // GPIO GPIOB->PDDR &= ~(1 << 3); PORTD->PCR[3] = PORT_PCR_MUX(1); // Camera CLK2 PORTC->PCR[12] = PORT_PCR_MUX(1); // Camera SI2 GPIOC->PCOR |= 1 << 7; GPIOC->PCOR |= 1 << 0; GPIOD->PCOR |= 1 << 3; GPIOC->PCOR |= 1 << 12; GPIOC->PDDR |= 1 << 7; GPIOC->PDDR |= 1 << 0; GPIOD->PDDR |= 1 << 3; GPIOC->PDDR |= 1 << 12; pit_config_t pitConfig; pitConfig.enableRunInDebug = false; PIT_Init(PIT, &pitConfig); enablePIT(kPIT_Chnl_1, cameraScanTime); enablePIT(kPIT_Chnl_0, 600000); // 100x per second } volatile unsigned int time = 0; char antiFlickerSyncType = 0; extern "C" { void PIT_CHANNEL_0_IRQHANDLER(void) { if(PIT->CHANNEL[0].TFLG & PIT_TFLG_TIF_MASK) { PIT->CHANNEL[0].TFLG = PIT_TFLG_TIF_MASK; for(int i=0; i<14; i++) { if(((cameraScanTime+8000)>>i)<600000) { // 26 if(antiFlickerSyncType != i) { antiFlickerSyncType = i; enablePIT(kPIT_Chnl_0, 600000<<i); } break; } } time += 1<<antiFlickerSyncType; isCameraPeriodReady = 1; GPIOC->PSOR |= 1 << 0; // set SI high GPIOC->PSOR |= 1 << 12; // set SI2 high for(int j=8; j!=0; --j) __asm("NOP"); // 4*3 clocks GPIOC->PSOR |= 1 << 7; // set clock high GPIOD->PSOR |= 1 << 3; // set clock2 high for(int j=8; j!=0; --j) __asm("NOP"); // 4*3 clocks GPIOC->PCOR |= 1 << 0; // set SI low GPIOC->PCOR |= 1 << 12; // set SI2 low for(int j=8; j!=0; --j) __asm("NOP"); // 4*3 clocks for(int i=0; i<18; ++i) { GPIOC->PCOR |= 1 << 7; // set clock low GPIOD->PCOR |= 1 << 3; // set clock2 low for(int j=8; j!=0; --j) __asm("NOP"); // 4*3 clocks GPIOC->PSOR |= 1 << 7; // set clock high GPIOD->PSOR |= 1 << 3; // set clock2 high for(int j=8; j!=0; --j) __asm("NOP"); // 4*3 clocks } enablePIT(kPIT_Chnl_1, cameraScanTime); for(int i=0; i<112; ++i) { GPIOC->PCOR |= 1 << 7; // set clock low GPIOD->PCOR |= 1 << 3; // set clock2 low for(int j=8; j!=0; --j) __asm("NOP"); // 4*3 clocks GPIOC->PSOR |= 1 << 7; // set clock high GPIOD->PSOR |= 1 << 3; // set clock2 high for(int j=8; j!=0; --j) __asm("NOP"); // 4*3 clocks } GPIOC->PCOR |= 1 << 7; // set clock low GPIOD->PCOR |= 1 << 3; // set clock2 low PIT->CHANNEL[1].TFLG = PIT_TFLG_TIF_MASK; } } } extern "C" { void PIT_CHANNEL_1_IRQHANDLER(void) { if(PIT->CHANNEL[1].TFLG & PIT_TFLG_TIF_MASK) { PIT->CHANNEL[1].TFLG = PIT_TFLG_TIF_MASK; // clear flag #ifndef CAMERA_AVERAGING enablePIT(kPIT_Chnl_1, 0xFFFFFFFF); #endif GPIOC->PSOR |= 1 << 0; // set SI high GPIOC->PSOR |= 1 << 12; // set SI2 high for(int j=15; j!=0; --j) __asm("NOP"); // 4*3 clocks GPIOC->PSOR |= 1 << 7; // set clock high GPIOD->PSOR |= 1 << 3; // set clock2 high for(int j=15; j!=0; --j) __asm("NOP"); // 4*5 clocks //ADC0_SC1A = AIEN_OFF | DIFF_SINGLE | ADC_SC1_ADCH(6); ADC0->SC1[0] = ADC_SC1_AIEN(0) | ADC_SC1_DIFF(0) | ADC_SC1_ADCH(12); GPIOC->PCOR |= 1 << 0; // set SI low GPIOC->PCOR |= 1 << 12; // set SI2 low for(int j=15; j!=0; --j) __asm("NOP"); // 4*3 clocks for(int i=0; i<128; ++i) { GPIOC->PCOR |= 1 << 7; // set clock low GPIOD->PCOR |= 1 << 3; // set clock2 low for(int j=15; j!=0; --j) __asm("NOP"); // 4*5 clocks while(!(ADC0->SC1[0] & ADC_SC1_COCO_MASK)); short temp = ADC0->R[0]; //temp -= 60; temp-=170; // 150 if(temp&0x800) { temp = 0; } temp = (temp*3)>>1; if(temp&0x700) { temp = 0xFF; } #ifdef CAMERA_AVERAGING if(cameraPeriodWriteCount[currentCameraSwapBuffer]) { cameraData[currentCameraSwapBuffer][i] += temp; } else { cameraData[currentCameraSwapBuffer][i] = temp; } #else cameraData[currentCameraSwapBuffer][i] = temp; #endif GPIOC->PSOR |= 1 << 7; // set clock high GPIOD->PSOR |= 1 << 3; // set clock2 high for(int j=15; j!=0; --j) __asm("NOP"); // 4*5 clocks ADC0->SC1[0] = ADC_SC1_AIEN(0) | ADC_SC1_DIFF(0) | ADC_SC1_ADCH(12); } isCameraBufferReady[currentCameraSwapBuffer] = 1; GPIOC->PCOR |= 1 << 7; // set clock low GPIOD->PCOR |= 1 << 3; // set clock2 low for(int j=15; j!=0; --j) __asm("NOP"); // 4*5 clocks GPIOC->PSOR |= 1 << 7; // set clock high GPIOD->PSOR |= 1 << 3; // set clock2 high for(int j=15; j!=0; --j) __asm("NOP"); // 4*5 clocks GPIOC->PCOR |= 1 << 7; // set clock low GPIOD->PCOR |= 1 << 3; // set clock2 low #ifdef CAMERA_AVERAGING cameraPeriodWriteCount[currentCameraSwapBuffer]++; #endif } } } // pointer obtained by getNextImage is valid till next call of getNextImage unsigned short* getNextImage() { // will return null if there is no image yet unsigned char oldBuffer = currentCameraSwapBuffer; if(isCameraBufferReady[oldBuffer] && isCameraPeriodReady) { // we need to change current buffer without changing current buffer // to value which is bigger than bufferCount - 1 currentCameraSwapBuffer ^= 1; isCameraBufferReady[oldBuffer] = 0; unsigned short* oldData = (unsigned short*)cameraData[oldBuffer]; #ifdef CAMERA_AVERAGING unsigned char writeCount = cameraPeriodWriteCount[oldBuffer]; for(int i = 0; i<128; i++) { oldData[i] = oldData[i]/writeCount; } cameraPeriodWriteCount[oldBuffer] = 0; #endif isCameraPeriodReady = 0; return oldData; } return 0; } // info about camera values, updated at call of calibrateCamera unsigned char cameraMinValue = 0; unsigned char cameraMaxValue = 0; unsigned char cameraMiddleValue = 0; void calibrateCamera(unsigned short* cameraData) { unsigned int minVal = 1020; unsigned int maxVal = 0; for(int j=125; j; j--) { unsigned short average = ((unsigned short)cameraData[j+0]) + ((unsigned short)cameraData[j+1]) + ((unsigned short)cameraData[j+2]) + ((unsigned short)cameraData[j+3]); if(average > maxVal ) { maxVal = average; } else if(average < minVal ) { minVal = average; } } if(minVal == 0 && maxVal == 1020) { return; } int middle = minVal + maxVal; if(middle < 8) middle = 8; cameraScanTime *= 1024.0f / (float)middle; } void cameraInitialCalibration() { for(int i=0; i<40;) { unsigned short* cameraData = getNextImage(); if(cameraData) { i++; calibrateCamera(cameraData); } } } void initI2C() { i2c_master_config_t config = { .enableMaster = true, .enableStopHold = false, .baudRate_Bps = 400000, .glitchFilterWidth = 0 }; I2C_MasterInit(I2C0, &config, 12000000U); PORTE->PCR[24] = PORT_PCR_MUX(5); PORTE->PCR[25] = PORT_PCR_MUX(5); } void setupIOExpander() { uint8_t data[] = { 6, 0b11111111, 0b10111111 }; // 1 = input, 0 = output i2c_master_transfer_t transfer; transfer.flags = kI2C_TransferDefaultFlag; transfer.slaveAddress = 0x24; transfer.direction = kI2C_Write; transfer.subaddress = 0; transfer.subaddressSize = 0; transfer.data = data; transfer.dataSize = sizeof(data); I2C_MasterTransferBlocking(I2C0, &transfer); PORTC->PCR[1] = PORT_PCR_MUX(1) | (1 << 24) | (0b1010 << 16); // GPIO + interrupt + falling edge interrupt type GPIOC->PDDR &= ~(1 << 1); } struct ExpanderData { bool sw1 : 1; bool sw2 : 1; bool sw3 : 1; bool sw4 : 1; bool btn1 : 1; bool btn2 : 1; bool btn3 : 1; bool btn4 : 1; bool btn5 : 1; bool btKey : 1; bool btState : 1; bool undef1 : 1; bool undef2 : 1; bool undef3 : 1; bool undef4 : 1; bool undef5 : 1; }; ExpanderData readIOExapnder() { ExpanderData data; i2c_master_transfer_t transfer; transfer.flags = kI2C_TransferDefaultFlag; transfer.slaveAddress = 0x24; transfer.direction = kI2C_Read; transfer.subaddress = 0; transfer.subaddressSize = 1; transfer.data = (uint8_t*)&data; transfer.dataSize = 2; I2C_MasterTransferBlocking(I2C0, &transfer); return data; } void setupGyroscope() { uint8_t data[] = { 0x13, 0b00000010 }; // CTRL_REG1[ACTIVE] = 1 i2c_master_transfer_t transfer; transfer.flags = kI2C_TransferDefaultFlag; transfer.slaveAddress = 0x20; transfer.direction = kI2C_Write; transfer.subaddress = 0; transfer.subaddressSize = 0; transfer.data = data; transfer.dataSize = sizeof(data); I2C_MasterTransferBlocking(I2C0, &transfer); PORTB->PCR[20] = PORT_PCR_MUX(1) | (1 << 24) | (0b1010 << 16); // INT1 // GPIO + interrupt + falling edge interrupt type GPIOB->PDDR &= ~(1 << 20); PORTE->PCR[26] = PORT_PCR_MUX(1) | (1 << 24) | (0b1010 << 16); // INT2 // GPIO + interrupt + falling edge interrupt type GPIOE->PDDR &= ~(1 << 26); } void setupAccelerometerAndMagnetometer() { const int commandLen = 2; const int commandCount = 5; uint8_t data[commandCount][commandLen] = { { 0x2A, 0b00000000 }, // set to standy mode { 0x5B, 0b00011111 }, // setup magnetometer { 0x5C, 0b00100000 }, // setup magnetometer part 2 { 0x0E, 0b00000001 }, // set accelerometer range { 0x2A, 0b00001101 } // launch accelerometer }; i2c_master_transfer_t transfer; transfer.flags = kI2C_TransferDefaultFlag; transfer.slaveAddress = 0x20; transfer.direction = kI2C_Write; transfer.subaddress = 0; transfer.subaddressSize = 0; for(int i=0; i<commandCount; i++) { transfer.data = data[i]; transfer.dataSize = commandLen; I2C_MasterTransferBlocking(I2C0, &transfer); } { const int commandLen = 2; const int commandCount = 1; uint8_t data[commandCount][commandLen] = { { 0x00, 0b00000000 } }; i2c_master_transfer_t transfer; transfer.flags = kI2C_TransferDefaultFlag; transfer.slaveAddress = 0x20; transfer.direction = kI2C_Read; transfer.subaddress = 0; transfer.subaddressSize = 0; for(int i=0; i<commandCount; i++) { transfer.data = data[i]; transfer.dataSize = commandLen; I2C_MasterTransferBlocking(I2C0, &transfer); } } } namespace Bluetooth { void setup() { uart_config_t uartConfig; uartConfig.baudRate_Bps = 9600; uartConfig.parityMode = kUART_ParityDisabled; uartConfig.stopBitCount = kUART_OneStopBit; uartConfig.txFifoWatermark = 0; uartConfig.rxFifoWatermark = 1; uartConfig.enableRxRTS = false; uartConfig.enableTxCTS = false; uartConfig.idleType = kUART_IdleTypeStartBit; uartConfig.enableTx = true; uartConfig.enableRx = true; UART_Init(UART3, &uartConfig, 60000000); PORTC->PCR[16] = PORT_PCR_MUX(3); PORTC->PCR[17] = PORT_PCR_MUX(3); } void print(char* text) { while (*text) { while (!(UART3->S1 & UART_S1_TDRE_MASK)); UART3->D = *(text++); } while (!(UART3->S1 & UART_S1_TDRE_MASK)); } void print(char ch) { while (!(UART3->S1 & UART_S1_TDRE_MASK)); UART3->D = ch; while (!(UART3->S1 & UART_S1_TDRE_MASK)); } void print(int i) { char text[16]; itoa(i, text, 10); print(text); } void printLn(char* text) { print(text); print('\n'); } }; namespace Stepper { uint8_t state = 0; int position = 0; int desiredPosition = 0; const uint8_t positionsB[] = { 0b01, 0b11, 0b10, 0b10, 0b00, 0b00, 0b00, 0b01 }; const uint8_t positionsC[] = { 0b00, 0b00, 0b00, 0b10, 0b10, 0b11, 0b01, 0b01 }; char getEndState() { return (GPIOB->PDIR & (1 << 3)) >> 3; } void unsafeStepUp() { state++; state &= 0x07; GPIOB->PSOR = positionsB[state] << 10; GPIOB->PCOR = ((~positionsB[state])&3) << 10; GPIOC->PSOR = positionsC[state] << 10; GPIOC->PCOR = ((~positionsC[state])&3) << 10; position++; } void stepUp() { if(position < 1000) { unsafeStepUp(); } } void unsafeStepDown() { state--; state &= 0x07; GPIOB->PSOR = positionsB[state] << 10; GPIOB->PCOR = ((~positionsB[state])&3) << 10; GPIOC->PSOR = positionsC[state] << 10; GPIOC->PCOR = ((~positionsC[state])&3) << 10; position--; } void stepDown() { if(position > 0) { unsafeStepDown(); } } void calibrate() { while(!getEndState()) { unsafeStepDown(); for(int i=0; i<10000; i++) { __asm("NOP"); } } position = 0; } void setup() { PORTB->PCR[10] = PORT_PCR_MUX(1); PORTB->PCR[11] = PORT_PCR_MUX(1); PORTC->PCR[11] = PORT_PCR_MUX(1); PORTC->PCR[10] = PORT_PCR_MUX(1); GPIOB->PSOR |= 1 << 10; GPIOB->PCOR |= 1 << 11; GPIOC->PCOR |= 1 << 11; GPIOC->PCOR |= 1 << 10; GPIOB->PDDR |= 1 << 10; GPIOB->PDDR |= 1 << 11; GPIOC->PDDR |= 1 << 11; GPIOC->PDDR |= 1 << 10; calibrate(); enablePIT(kPIT_Chnl_2, 600000); } }; extern "C" { void PIT_CHANNEL_2_IRQHANDLER(void) { if(PIT->CHANNEL[2].TFLG & PIT_TFLG_TIF_MASK) { PIT->CHANNEL[2].TFLG = PIT_TFLG_TIF_MASK; if(Stepper::desiredPosition != Stepper::position) { if(Stepper::desiredPosition<Stepper::position) { Stepper::stepDown(); } else { Stepper::stepUp(); } } } } } extern void onEncoderUpdate(); namespace Encoder { float currentSpeed = 0.0f; float readsPerSecond = 20.0f; void setup() { ftm_config_t ftmInfo; FTM_GetDefaultConfig(&ftmInfo); FTM_Init(FTM2, &ftmInfo); FTM_SetQuadDecoderModuloValue(FTM2, 0, -1); ftm_phase_params_t phaseOptions; phaseOptions.phasePolarity = kFTM_QuadPhaseNormal; phaseOptions.enablePhaseFilter = false; phaseOptions.phaseFilterVal = 0; FTM_SetupQuadDecode(FTM2, &phaseOptions, &phaseOptions, kFTM_QuadPhaseEncode); PORTB->PCR[18] = PORT_PCR_MUX(6); // ENC1A PORTB->PCR[19] = PORT_PCR_MUX(6); // ENC1B PORTA->PCR[2] = PORT_PCR_MUX(1); // ENC2A PORTB->PCR[23] = PORT_PCR_MUX(1); // ENC2B enablePIT(kPIT_Chnl_3, 60000000/readsPerSecond); } int read() { int encoderCount = (int16_t)FTM_GetQuadDecoderCounterValue(FTM2); /* Clear counter */ FTM_ClearQuadDecoderCounterValue(FTM2); /* Read direction */ /*if (!(FTM_GetQuadDecoderFlags(FTM2) & kFTM_QuadDecoderCountingIncreaseFlag)) { encoderCount = -encoderCount; }*/ return encoderCount; } }; extern "C" { void PIT_CHANNEL_3_IRQHANDLER(void) { if(PIT->CHANNEL[3].TFLG & PIT_TFLG_TIF_MASK) { PIT->CHANNEL[3].TFLG = PIT_TFLG_TIF_MASK; Encoder::currentSpeed = Encoder::read()*Encoder::readsPerSecond; onEncoderUpdate(); } } } #include "u8g2.h" namespace Display { u8g2_t u8g2; uint8_t u8x8_gpio_and_delay(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) { int waitClocks; switch(msg) { case U8X8_MSG_GPIO_AND_DELAY_INIT: // called once during init phase of u8g2/u8x8 PORTC->PCR[5] = PORT_PCR_MUX(2); // SCK PORTA->PCR[1] = PORT_PCR_MUX(1); // RES PORTB->PCR[9] = PORT_PCR_MUX(1); // CS PORTC->PCR[4] = PORT_PCR_MUX(1); // DC PORTD->PCR[2] = PORT_PCR_MUX(2); // SDA GPIOA->PDDR |= 1 << 1; // RES GPIOB->PDDR |= 1 << 9; // CS GPIOC->PDDR |= 1 << 4; // DC break; // can be used to setup pins case U8X8_MSG_DELAY_NANO: // delay arg_int * 1 nano second waitClocks = arg_int*40/1000; for(int i=0; i<waitClocks; i++) __asm("NOP"); break; case U8X8_MSG_DELAY_100NANO: // delay arg_int * 100 nano seconds waitClocks = arg_int*40/10; for(int i=0; i<waitClocks; i++) __asm("NOP"); break; case U8X8_MSG_DELAY_10MICRO: // delay arg_int * 10 micro seconds waitClocks = arg_int*40*10; for(int i=0; i<waitClocks; i++) __asm("NOP"); break; case U8X8_MSG_DELAY_MILLI: // delay arg_int * 1 milli second waitClocks = arg_int*40*1000; for(int i=0; i<waitClocks; i++) __asm("NOP"); break; case U8X8_MSG_DELAY_I2C: // arg_int is the I2C speed in 100KHz, e.g. 4 = 400 KHz break; // arg_int=1: delay by 5us, arg_int = 4: delay by 1.25us case U8X8_MSG_GPIO_D0: // D0 or SPI clock pin: Output level in arg_int //case U8X8_MSG_GPIO_SPI_CLOCK: break; case U8X8_MSG_GPIO_D1: // D1 or SPI data pin: Output level in arg_int //case U8X8_MSG_GPIO_SPI_DATA: break; case U8X8_MSG_GPIO_D2: // D2 pin: Output level in arg_int break; case U8X8_MSG_GPIO_D3: // D3 pin: Output level in arg_int break; case U8X8_MSG_GPIO_D4: // D4 pin: Output level in arg_int break; case U8X8_MSG_GPIO_D5: // D5 pin: Output level in arg_int break; case U8X8_MSG_GPIO_D6: // D6 pin: Output level in arg_int break; case U8X8_MSG_GPIO_D7: // D7 pin: Output level in arg_int break; case U8X8_MSG_GPIO_E: // E/WR pin: Output level in arg_int break; case U8X8_MSG_GPIO_CS: // CS (chip select) pin: Output level in arg_int if(arg_int) { GPIOB->PSOR |= 1 << 9; } else { GPIOB->PCOR |= 1 << 9; } break; case U8X8_MSG_GPIO_DC: // DC (data/cmd, A0, register select) pin: Output level in arg_int if(arg_int) { GPIOC->PSOR |= 1 << 4; } else { GPIOC->PCOR |= 1 << 4; } break; case U8X8_MSG_GPIO_RESET: // Reset pin: Output level in arg_int if(arg_int) { GPIOA->PSOR |= 1 << 1; } else { GPIOA->PCOR |= 1 << 1; } break; case U8X8_MSG_GPIO_CS1: // CS1 (chip select) pin: Output level in arg_int break; case U8X8_MSG_GPIO_CS2: // CS2 (chip select) pin: Output level in arg_int break; case U8X8_MSG_GPIO_I2C_CLOCK: // arg_int=0: Output low at I2C clock pin break; // arg_int=1: Input dir with pullup high for I2C clock pin case U8X8_MSG_GPIO_I2C_DATA: // arg_int=0: Output low at I2C data pin break; // arg_int=1: Input dir with pullup high for I2C data pin case U8X8_MSG_GPIO_MENU_SELECT: u8x8_SetGPIOResult(u8x8, 0); break; case U8X8_MSG_GPIO_MENU_NEXT: u8x8_SetGPIOResult(u8x8, 0); break; case U8X8_MSG_GPIO_MENU_PREV: u8x8_SetGPIOResult(u8x8, 0); break; case U8X8_MSG_GPIO_MENU_HOME: u8x8_SetGPIOResult(u8x8, 0); break; default: u8x8_SetGPIOResult(u8x8, 1); // default return value break; } return 1; } extern "C" uint8_t u8x8_byte_arduino_hw_spi(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) { switch(msg) { case U8X8_MSG_BYTE_SEND: dspi_transfer_t transferConfig; transferConfig.dataSize = arg_int; transferConfig.txData = (uint8_t *)arg_ptr; transferConfig.rxData = NULL; transferConfig.configFlags = 0; DSPI_MasterTransferBlocking(SPI0, &transferConfig); break; case U8X8_MSG_BYTE_INIT: dspi_master_config_t spiConfig; spiConfig.whichCtar = kDSPI_Ctar0; spiConfig.ctarConfig.baudRate = u8x8->display_info->sck_clock_hz; spiConfig.ctarConfig.bitsPerFrame = 8; if(u8x8->display_info->spi_mode&0x2) { spiConfig.ctarConfig.cpol = static_cast<dspi_clock_polarity_t>(1); } else { spiConfig.ctarConfig.cpol = static_cast<dspi_clock_polarity_t>(0); } if(u8x8->display_info->spi_mode&0x1) { spiConfig.ctarConfig.cpha = static_cast<dspi_clock_phase_t>(1); } else { spiConfig.ctarConfig.cpha = static_cast<dspi_clock_phase_t>(0); } spiConfig.ctarConfig.direction = kDSPI_MsbFirst; spiConfig.ctarConfig.pcsToSckDelayInNanoSec = 10000; spiConfig.ctarConfig.lastSckToPcsDelayInNanoSec = 10000; spiConfig.ctarConfig.betweenTransferDelayInNanoSec = 10000; spiConfig.whichPcs = kDSPI_Pcs0; spiConfig.pcsActiveHighOrLow = kDSPI_PcsActiveLow; spiConfig.enableContinuousSCK = false; spiConfig.enableRxFifoOverWrite = false; spiConfig.enableModifiedTimingFormat = false; spiConfig.samplePoint = kDSPI_SckToSin0Clock; DSPI_MasterInit(SPI0, &spiConfig, 60000000); u8x8_gpio_SetCS(u8x8, u8x8->display_info->chip_disable_level); break; case U8X8_MSG_BYTE_SET_DC: u8x8_gpio_SetDC(u8x8, arg_int); break; case U8X8_MSG_BYTE_START_TRANSFER: u8x8_gpio_SetCS(u8x8, u8x8->display_info->chip_enable_level); u8x8->gpio_and_delay_cb(u8x8, U8X8_MSG_DELAY_NANO, u8x8->display_info->post_chip_enable_wait_ns, NULL); break; case U8X8_MSG_BYTE_END_TRANSFER: u8x8->gpio_and_delay_cb(u8x8, U8X8_MSG_DELAY_NANO, u8x8->display_info->pre_chip_disable_wait_ns, NULL); u8x8_gpio_SetCS(u8x8, u8x8->display_info->chip_disable_level); break; default: return 0; } return 1; } const uint8_t loading_img[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x3c, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x7c, 0x00, 0x38, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0xfc, 0x00, 0x78, 0xf0, 0xf8, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x01, 0xfc, 0x00, 0xf8, 0xf1, 0xf0, 0x0e, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x03, 0xf8, 0x01, 0xf8, 0xf3, 0xe0, 0x1e, 0x00, 0xf0, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x07, 0xc0, 0x03, 0xf8, 0xf7, 0xe0, 0x3e, 0x01, 0xf0, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0f, 0xc0, 0x03, 0xf8, 0xff, 0x80, 0x3e, 0x03, 0xf0, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0f, 0x80, 0x0f, 0xf0, 0x7f, 0x80, 0x7f, 0x07, 0xf0, 0x1f, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0f, 0x00, 0x1f, 0xf0, 0x7f, 0x80, 0x7f, 0x07, 0xc0, 0x1f, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x1f, 0x00, 0x3f, 0xe0, 0x7f, 0x00, 0xff, 0x0f, 0x80, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3e, 0x00, 0x3f, 0xe0, 0x7f, 0x00, 0xff, 0x0f, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7c, 0x00, 0x7f, 0xe0, 0x7e, 0x01, 0xff, 0x1f, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0x00, 0xfb, 0xc0, 0x7c, 0x01, 0xef, 0x1e, 0x00, 0xfb, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x01, 0xf3, 0xc0, 0xf8, 0x01, 0xef, 0x1e, 0x01, 0xf3, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x79, 0xf0, 0x03, 0xe3, 0xc1, 0xf8, 0x01, 0xef, 0x3e, 0x01, 0xe3, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7b, 0xe0, 0x07, 0xcf, 0xc3, 0xfc, 0x03, 0xef, 0x3c, 0x01, 0xe3, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7b, 0xc0, 0x0f, 0xff, 0x87, 0xfc, 0x03, 0xcf, 0x7c, 0x03, 0xe3, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x1f, 0xff, 0x87, 0xfc, 0x07, 0xcf, 0xf8, 0x03, 0xc3, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x3f, 0xff, 0x8f, 0xbc, 0x07, 0x87, 0xf8, 0x07, 0xc3, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x7c, 0xff, 0x1f, 0x3c, 0x07, 0x87, 0xf8, 0x07, 0x83, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0xf8, 0x0f, 0x3e, 0x3c, 0x07, 0x87, 0xf0, 0x0f, 0x87, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x01, 0xf0, 0x0f, 0x3c, 0x3c, 0x0f, 0x87, 0xf0, 0x1f, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x03, 0xe0, 0x1f, 0x3c, 0x3c, 0x0f, 0x07, 0xf0, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x03, 0xc0, 0x1f, 0x38, 0x3c, 0x0f, 0x07, 0xe0, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x0e, 0x00, 0x3c, 0x1f, 0x07, 0xe0, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3c, 0x1e, 0x07, 0xe0, 0xf0, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x1e, 0x03, 0xc1, 0xf0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x03, 0xc3, 0xe0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x01, 0xc7, 0xe0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x07, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x07, 0xfc, 0x07, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x87, 0xff, 0x0f, 0x0f, 0x80, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1f, 0xc7, 0xff, 0x0f, 0x0f, 0x81, 0xf8, 0x0e, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x03, 0x8f, 0xff, 0x0f, 0x1f, 0x83, 0xf0, 0x1e, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0x0f, 0x0f, 0x1f, 0x1f, 0x07, 0xe0, 0x1e, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0f, 0x1f, 0x1e, 0x3e, 0x0f, 0x80, 0x1e, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0f, 0x1f, 0x1e, 0x3c, 0x0f, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0f, 0x3e, 0x1e, 0x3c, 0x1f, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0f, 0x3e, 0x1e, 0x7c, 0x1e, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0f, 0x3c, 0x1e, 0x78, 0x3e, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x1f, 0x3c, 0x1e, 0x78, 0x7c, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x1e, 0x3f, 0x1e, 0xf8, 0x78, 0x00, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x1e, 0x1f, 0x9e, 0xf0, 0x78, 0x3c, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x3e, 0x0f, 0xde, 0xf0, 0xf8, 0x7e, 0x3f, 0xc0, 0x00, 0x10, 0x89, 0x94, 0x5e, 0x00, 0xf8, 0x00, 0x3e, 0x07, 0xdf, 0xf0, 0xf3, 0xfc, 0x7f, 0xe0, 0x00, 0x11, 0x55, 0x56, 0x50, 0x00, 0xf0, 0x00, 0x1c, 0x03, 0xdf, 0xe0, 0xff, 0xf8, 0x7b, 0xf0, 0x00, 0x11, 0x55, 0x55, 0x56, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0xff, 0xf0, 0x79, 0xfc, 0x00, 0x11, 0x5d, 0x54, 0xd2, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x7f, 0xc0, 0x38, 0xfe, 0x00, 0x1c, 0x95, 0x94, 0x5e, 0xa8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; void setup() { u8g2_Setup_ssd1306_128x64_noname_f(&u8g2, U8G2_R0, u8x8_byte_arduino_hw_spi, u8x8_gpio_and_delay); u8g2_InitDisplay(&u8g2); u8g2_SetPowerSave(&u8g2, 0); u8g2_ClearBuffer(&u8g2); u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr); //u8g2_DrawStr(&u8g2, 0, 10, "Hello world!"); u8g2_DrawBitmap(&u8g2, 0, 0, 16, 64, loading_img); u8g2_SendBuffer(&u8g2); } }; void enableClocks() { CLOCK_EnableClock(kCLOCK_PortA); CLOCK_EnableClock(kCLOCK_PortB); CLOCK_EnableClock(kCLOCK_PortC); CLOCK_EnableClock(kCLOCK_PortD); CLOCK_EnableClock(kCLOCK_PortE); } void setupTFC() { enableClocks(); setupServo(0); Motor::setup(); setupCamera(); initI2C(); setupIOExpander(); setupGyroscope(); setupAccelerometerAndMagnetometer(); Display::setup(); Bluetooth::setup(); Stepper::setup(); Encoder::setup(); } #endif /* __TFC_H__ */</div> </div> </div> </div> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/message/item/default.php --> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php</b> on line <b>234</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php</b> on line <b>237</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php</b> on line <b>239</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php</b> on line <b>189</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php</b> on line <b>237</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/CBLib/CB/Legacy/LegacyFoundationFunctions.php</b> on line <b>239</b><br /> <p>Please <a class="btn-link" href="/index.php/en/component/users/login?return=aHR0cHM6Ly93d3cuYmx1ZXRvb3RoLmNvbS5jbi9pbmRleC5waHAvZW4vZm9ydW0ta3VuZW5hL2ZvcnVtL2NvbnRlc3QtY29kZS83OS0yMDIwLW54cC1jdXAtaW5ub3ZhdGlvbi1jaGFsbGVuZ2UtY29udGVzdC1hdXRvbm9tb3VzLXJhY2luZy1jYXI=&Itemid=101" rel="nofollow">Log in</a> or <a class="btn-link" href="https://www.bluetooth.com.cn/index.php/en/cb-registration">Create an account</a> to join the conversation.</p> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/message/item/actions/default.php --> <div class="btn-toolbar btn-marging kmessagepadding"> </div> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/message/item/actions/default.php --> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/message/edit/quickreply.php --> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/message/edit/quickreply.php --> </div> </div> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/module/default.php --> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/module/default.php --> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/topic/item/message/default.php --> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/module/default.php --> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/module/default.php --> </div> <div class="float-start"> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/list/default.php --> <nav class="d-none d-sm-block"> <ul class="pagination ms-0"> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <li class="page-item disabled"><a class="page-link">Start</a></li> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <li class="page-item disabled"><a class="page-link">Prev</a></li> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <li class="page-item active"><a class="page-link">1</a></li> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <li class="page-item disabled"><a class="page-link">Next</a></li> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <li class="page-item disabled"><a class="page-link">End</a></li> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> </ul> </nav> <nav class="d-block d-sm-none"> <ul class="pagination ms-0"> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> <li class="page-item active"><a class="page-link">1</a></li> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/item/default.php --> </ul> </nav> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/pagination/list/default.php --> </div> <div class="float-end"> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/search/topic.php --> <div class="kunena-search search"> <form role="search" action="" method="post"> <input type="hidden" name="view" value="search" /> <input type="hidden" name="task" value="results" /> <input type="hidden" name="ids[]" value="79" /> <input type="hidden" name="c5e8a8d1e8c0dc96d022c7754ed3748e" value="1"> <div class="input-group"> <input name="query" class="form-control hasTooltip" id="mod-search-searchword" type="search" maxlength="64" placeholder="Search" data-bs-toggle="tooltip" title="Enter here your item to search" /> <button class="btn btn-outline-primary" type="submit"> <svg xmlns="http://www.w3.org/2000/svg" class="bi bi-search" width="1em" height="1em" viewBox="0 0 20 20" fill="currentColor"> <path fill-rule="evenodd" d="M12.442 12.442a1 1 0 011.415 0l3.85 3.85a1 1 0 01-1.414 1.415l-3.85-3.85a1 1 0 010-1.415z" clip-rule="evenodd"></path> <path fill-rule="evenodd" d="M8.5 14a5.5 5.5 0 100-11 5.5 5.5 0 000 11zM15 8.5a6.5 6.5 0 11-13 0 6.5 6.5 0 0113 0z" clip-rule="evenodd"></path> </svg> </button> </div> </form> </div> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/search/topic.php --> </div> <div> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/topic/item/actions/default.php --> <div class="clearfix"></div> <div class="btn-toolbar btn-marging kmessagepadding" id="topic-actions-toolbar"> <div> </div> </div> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/topic/item/actions/default.php --> </div> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/forumjump/default.php --> <form action="<br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/kunena/src/Route/KunenaRoute.php</b> on line <b>324</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/kunena/src/Route/KunenaRoute.php</b> on line <b>324</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/kunena/src/Route/KunenaRoute.php</b> on line <b>324</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/libraries/kunena/src/Route/KunenaRoute.php</b> on line <b>335</b><br /> /index.php/en/forum-kunena/forum" id="jumpto" name="jumpto" method="post" target="_self"> <input type="hidden" name="view" value="category"/> <input type="hidden" name="task" value="jump"/> <div class="selector col-3"><select name="catid" id="catid" class="form-select" data-bs-toggle="tooltip" title="Board Categories" size="1" onchange = "this.form.submit()"><option value="0">Board Categories</option> <option value="1" selected="selected"> Main Forum</option> <option value="2">- 市场报道</option> <option value="3">- Sales and Markering</option> <option value="118">- Bluetooth AOA positioning</option> <option value="124">- 汽车</option> <option value="132">- 追梦</option> <option value="24"> Bluetooth Stack</option> <option value="60">- Nordic SoftDevice</option> <option value="114">- Clarinox</option> <option value="25"> Chips</option> <option value="26">- Bestechnic</option> <option value="27">- Actions</option> <option value="28">- Jieli</option> <option value="29">- Buildwin</option> <option value="30">- Anyka</option> <option value="32">- Airoha</option> <option value="33">- Bluetrum</option> <option value="34">- Qualcomm</option> <option value="35">- Realtek</option> <option value="46">- ISSC</option> <option value="37">- Pixart</option> <option value="36">- Unisoc</option> <option value="38">- Cypress</option> <option value="39">- Appotech</option> <option value="40">- Broadcom</option> <option value="41">- Mediatek</option> <option value="42">- CSR</option> <option value="43">- TI</option> <option value="44">- Nordic</option> <option value="45">- Dialog</option> <option value="47">- Quintic</option> <option value="48">- RDA</option> <option value="49">- mvsilicon</option> <option value="50">- macrogiga</option> <option value="51">- lenzetech</option> <option value="52">- telink</option> <option value="53">- MAXSCEND</option> <option value="54">- beken</option> <option value="55">- ST Microelectronics</option> <option value="115">- Microchip</option> <option value="116">- MTK</option> <option value="22"> Research and Development</option> <option value="23">- Development Board</option> <option value="4"> Source Code</option> <option value="5">- 医疗健康</option> <option value="6">- Gas Detector</option> <option value="7">- Distance Measurement</option> <option value="8">- 蓝牙车</option> <option value="9">- Game & Entertainment</option> <option value="10">- Audio</option> <option value="11">- Smart Home</option> <option value="12">- Sport Application</option> <option value="13">- Automation</option> <option value="31">- 室内定位</option> <option value="14"> Files and Documents</option> <option value="15">- Books</option> <option value="16"> Questions and Answers</option> <option value="17">- 技术讨论</option> <option value="18"> miscellaneous items</option> <option value="19">- 个人事务</option> <option value="61"> Programming and code</option> <option value="62">- Matlab</option> <option value="63">- Best Programmer</option> <option value="64">- Contest & Competition</option> <option value="65"> TWS earbuds supplier chain</option> <option value="66">- Knowles</option> <option value="67">- ams</option> <option value="68">- ADI</option> <option value="71"> Internet of Things</option> <option value="74">- 新闻报道</option> <option value="78"> Embedded programming design</option> <option value="82"> AR/VR</option> <option value="92"> China Chip</option> <option value="94">- Plywood</option> <option value="98"> GaN & SiC</option> <option value="101">- Navigation instrument</option> <option value="112"> CAN</option> <option value="113">- Analog Device</option> <option value="117"> UWB</option> <option value="122"> New Energy Vehicles</option> <option value="123">- NEV</option> <option value="125">- 充电桩</option> <option value="126"> Spatial Audio</option> <option value="127">- Spatial Audio Framework</option> <option value="128"> AI</option> <option value="129">- DeepSeek</option> <option value="131">- AI行业新闻</option> <option value="133">- AI application</option> </select></div> </form> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/forumjump/default.php --> <div class="clearfix"></div> <div class="float-end"> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/category/moderators/default.php --> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/category/moderators/default.php --> </div> </div> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/topic/item/default.php --> <!-- END /var/www/html/components/com_kunena/template/aurelia/pages/topic/default/default.php --> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/breadcrumb/default.php --> <nav class="pagination-container-links pt-4" aria-label="breadcrumbs"> <ol class="mod-kunena-breadcrumbs breadcrumb" itemtype="https://schema.org/BreadcrumbList" itemscope=""> <li class="mod-kunena-breadcrumbs__item breadcrumb-item active" aria-current="page" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <svg xmlns="http://www.w3.org/2000/svg" class="bi bi-house" width="1em" height="1em" viewBox="0 0 20 20" fill="currentColor"> <path fill-rule="evenodd" d="M9.646 3.146a.5.5 0 01.708 0l6 6a.5.5 0 01.146.354v7a.5.5 0 01-.5.5h-4.5a.5.5 0 01-.5-.5v-4H9v4a.5.5 0 01-.5.5H4a.5.5 0 01-.5-.5v-7a.5.5 0 01.146-.354l6-6zM4.5 9.707V16H8v-4a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v4h3.5V9.707l-5.5-5.5-5.5 5.5z" clip-rule="evenodd"></path> <path fill-rule="evenodd" d="M15 4.5V8l-2-2V4.5a.5.5 0 01.5-.5h1a.5.5 0 01.5.5z" clip-rule="evenodd"></path> </svg> <a itemprop="item" href="/index.php/en/forum-kunena"><span itemprop="name">Forum</span></a> <meta itemprop="position" content="1"/> </li> <li class="mod-kunena-breadcrumbs__item breadcrumb-item" itemtype="https://schema.org/ListItem" itemscope="" itemprop="itemListElement"> <a itemprop="item" href="/index.php/en/forum-kunena/forum"><span itemprop="name">Forum</span></a> <meta itemprop="position" content="2"/> </li> <li class="mod-kunena-breadcrumbs__item breadcrumb-item" itemtype="https://schema.org/ListItem" itemscope="" itemprop="itemListElement"> <a itemprop="item" href="/index.php/en/forum-kunena/forum/programming"><span itemprop="name">Programming and code</span></a> <meta itemprop="position" content="3"/> </li> <li class="mod-kunena-breadcrumbs__item breadcrumb-item" itemtype="https://schema.org/ListItem" itemscope="" itemprop="itemListElement"> <a itemprop="item" href="/index.php/en/forum-kunena/forum/contest-code"><span itemprop="name">Contest & Competition</span></a> <meta itemprop="position" content="4"/> </li> <li class="mod-kunena-breadcrumbs__item breadcrumb-item" itemtype="https://schema.org/ListItem" itemscope="" itemprop="itemListElement"> <a itemprop="item" href="/index.php/en/forum-kunena/forum/contest-code/79-2020-nxp-cup-innovation-challenge-contest-autonomous-racing-car"><span itemprop="name">2020 NXP Cup Innovation Challenge contest -Autonomous Racing Car</span></a> <meta itemprop="position" content="5"/> </li> </ol> </nav> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/breadcrumb/default.php --> <!-- START /var/www/html/components/com_kunena/template/aurelia/layouts/widget/module/default.php --> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/widget/module/default.php --> </div> <!-- END /var/www/html/components/com_kunena/template/aurelia/layouts/page/default.php --> <div style="text-align:center;"><a href="/index.php/en/forum-kunena/forum/credits" style="display: inline !important; visibility: visible !important; text-decoration: none !important;">Powered by</a> <a href="https://www.kunena.org" target="_blank" rel="noopener noreferrer" style="display: inline !important; visibility: visible !important; text-decoration: none !important;">Kunena Forum</a></div><div><a title="Faboba : Création de composantJoomla" style="font-size: 8px;; visibility: visible;display:inline;" href="http://www.faboba.com" target="_blank">FaLang translation system by Faboba</a></div> </main> </div> <div class="grid-child container-sidebar-right"> <div class="sidebar-right card "> <div class="card-body"> <div id="mod-custom937" class="mod-custom custom"> <script src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8137462068824960" crossorigin="anonymous" async="async"></script> <!-- kunena forum vertical -kunena topic RH-side --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-8137462068824960" data-ad-slot="4872813411" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> </div> </div> <div class="sidebar-right card "> <div class="card-body"> <div id="hikashop_module_939" class="hikashop_module "> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/administrator/components/com_hikashop/classes/address.php</b> on line <b>571</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/administrator/components/com_hikashop/classes/address.php</b> on line <b>610</b><br /> <br /> <b>Deprecated</b>: Using null as an array offset is deprecated, use an empty string instead in <b>/var/www/html/administrator/components/com_hikashop/classes/address.php</b> on line <b>612</b><br /> <div id="hikashop_category_information_module_939" class="hikashop_category_information hikashop_products_listing_main hikashop_product_listing_223 hika_j4" > <!-- CATEGORY TITLE --> <!-- EO CATEGORY TITLE --> <!-- CATEGORY DESCRIPTION --> <!-- EO CATEGORY DESCRIPTION --> <!-- CATEGORY FIELDS --> <!-- EO CATEGORY FIELDS --> <!-- MIDDLE EXTRA DATA --> <!-- EO MIDDLE EXTRA DATA --> <div class="hikashop_products_listing"> <div id="hikashop_products_switcher_hikashop_category_information_module_939" class="hikashop_products " itemscope="" itemtype="https://schema.org/itemListElement"> <div class="hk-row-fluid"> <div class="hkc-md-12 hikashop_product hikashop_product_column_1 hikashop_product_row_1" itemprop="itemList" itemscope="" itemtype="http://schema.org/ItemList"> <div class="hikashop_container "> <div class="hikashop_subcontainer "> <div class="hikashop_listing_img hikashop_product_of_category_223" id="div_hikashop_category_information_module_939_279"> <meta itemprop="name" content="Investment Cooperation"/> <!-- PRODUCT IMAGE --> <div class="hikashop_product_image"> <div class="hikashop_product_image_subdiv"> <a href="/index.php/en/products/shop/product/investment-cooperation" class=" "> <picture> <source srcset="/images/com_hikashop/upload/thumbnails/155x280f/investment_partnership.webp" type="image/webp"> <source srcset="/images/com_hikashop/upload/thumbnails/155x280f/investment_partnership.jpeg" type="image/jpeg"> <img class="hikashop_product_listing_image" title="Investment Cooperation" alt="investment_partnership" src="/images/com_hikashop/upload/thumbnails/155x280f/investment_partnership.jpeg"/> </picture> </a> <meta itemprop="image" content="/images/com_hikashop/upload/thumbnails/155x280f/investment_partnership.jpeg"/> <meta itemprop="url" content="/index.php/en/products/shop/product/investment-cooperation"> </div> </div> <!-- EO PRODUCT IMAGE --> <!-- PRODUCT PRICE --> <span class="hikashop_product_price_full"><span class="hikashop_product_price hikashop_product_price_0">¥697.01</span> <span class="hikashop_product_price_per_unit"></span></span> <!-- EO PRODUCT PRICE --> <!-- PRODUCT CUSTOM FIELDS --> <!-- EO PRODUCT CUSTOM FIELDS --> <!-- PRODUCT VOTE --> <span class="hikashop_product_vote"><div class="hikashop_vote_stars"> <div class="hk-rating-empty-label"> No vote </div> <div class="hk-rating hk-rating-empty" data-original-title="No vote" data-toggle="hk-tooltip"> <span class="hk-rate-star state-empty"></span><span class="hk-rate-star state-empty"></span><span class="hk-rate-star state-empty"></span><span class="hk-rate-star state-empty"></span><span class="hk-rate-star state-empty"></span> </div> </div> </span> <!-- EO PRODUCT VOTE --> <!-- ADD TO CART BUTTON AREA --> <!-- SALE END MESSAGE --> <!-- EO SALE END MESSAGE --> <!-- SALE START MESSAGE --> <!-- EO SALE START MESSAGE --> <!-- STOCK MESSAGE --> <span class="hikashop_product_stock_count"> </span> <!-- EO STOCK MESSAGE --> <!-- WAITLIST BUTTON --> <!-- EO WAITLIST BUTTON --> <form class="" action="/index.php/en/products/shop/product/updatecart/add-1/cid-279" method="post" name="hikashop_product_form_279_hikashop_category_information_module_939" enctype="multipart/form-data"> <!-- CUSTOM ITEM FIELDS --> <!-- EO CUSTOM ITEM FIELDS --> <!-- QUANTITY INPUT --> <div class="hikashop_quantity_form"> <script> window.hikashop.ready(function(){ window.hikashop.cartInfoUrl = '/index.php/en/component/hikashop/product/cartinfo?tmpl=raw'; window.hikashop.cartInfo = {"empty":true}; window.hikashop.syncInit(); }); </script> <input id="hikashop_product_quantity_field_1_synch" class="synchronized_add_to_cart" data-id="hikashop_product_quantity_field_1" data-product-id="279" data-cart-product-id="" type="hidden" name="synched_cart_quantity" value="0"/> <div id="hikashop_product_quantity_field_1_area" class="hikashop_product_quantity_input_div_default_main"> <div class="hikashop_product_quantity_div hikashop_product_quantity_input_div_default"> <input id="hikashop_product_quantity_field_1" type="text" value="1" onfocus="this.select()" class="hikashop_product_quantity_field form-control" name="quantity" data-hk-qty-min="0" data-hk-qty-max="0" onchange="window.hikashop.checkQuantity(this);" /> </div> <div class="hikashop_product_quantity_div hikashop_product_quantity_change_div_default"> <div class="hikashop_product_quantity_change_div_plus_default"> <a class="hikashop_product_quantity_field_change_plus hikashop_product_quantity_field_change hikabtn" href="#" data-hk-qty-mod="1" onclick="return window.hikashop.updateQuantity(this,'hikashop_product_quantity_field_1');">+</a> </div> <div class="hikashop_product_quantity_change_div_minus_default"> <a class="hikashop_product_quantity_field_change_minus hikashop_product_quantity_field_change hikabtn" href="#" data-hk-qty-mod="-1" onclick="return window.hikashop.updateQuantity(this,'hikashop_product_quantity_field_1');">–</a> </div> </div> </div> <div id="hikashop_product_quantity_field_1_buttons" class="hikashop_product_quantity_div hikashop_product_quantity_add_to_cart_div hikashop_product_quantity_add_to_cart_div_default"></div> </div> <input type="hidden" name="add" value=""/> <!-- EO QUANTITY INPUT --> <!-- ADD TO CART BUTTON --> <a class="hikabtn hikacart" onclick="if(window.hikashop.addToCart) { return window.hikashop.addToCart(this); }" data-addToCart="279" data-addTo-div="hikashop_category_information_module_939" data-addTo-class="add_in_progress" id="hikashop_product_quantity_field_1_add_to_cart_button" rel="nofollow" href="/index.php/en/products/shop/product/updatecart/add-1/cid-279"><span>Add to cart</span></a> <!-- EO ADD TO CART BUTTON --> <!-- WISHLIST BUTTON --> <!-- EO WISHLIST BUTTON --> <!-- CHOOSE OPTIONS BUTTON --> <!-- EO CHOOSE OPTIONS BUTTON --> </form> <!-- EO ADD TO CART BUTTON AREA --> <!-- COMPARISON AREA --> <!-- EO COMPARISON AREA --> <!-- CONTACT US AREA --> <!-- EO CONTACT US AREA --> <!-- PRODUCT DETAILS BUTTON AREA --> <!-- EO PRODUCT DETAILS BUTTON AREA --> </div> </div> </div> </div> </div> <div style="clear:both"></div> </div> </div> <!-- BOTTOM EXTRA DATA --> <!-- EO BOTTOM EXTRA DATA --> </div></div> </div> </div> <div class="sidebar-right card "> <h3 class="card-header ">Whatsapp</h3> <div class="card-body"> <div id="mod-custom938" class="mod-custom custom"> <p><img src="/images/Ads/QR_code_whatsapp_Michael_Liang_en.jpg" alt="QR code whatsapp Michael Liang en" width="350" height="622" /></p></div> </div> </div> <div class="sidebar-right card "> <div class="card-body"> <div id="hikashop_module_649" class="hikashop_module "> <div id="hikashop_category_information_module_649" class="hikashop_category_information hikashop_products_listing_main hikashop_product_listing_215 hika_j4" > <!-- CATEGORY TITLE --> <!-- EO CATEGORY TITLE --> <!-- CATEGORY DESCRIPTION --> <!-- EO CATEGORY DESCRIPTION --> <!-- CATEGORY FIELDS --> <!-- EO CATEGORY FIELDS --> <!-- MIDDLE EXTRA DATA --> <!-- EO MIDDLE EXTRA DATA --> <div class="hikashop_products_listing"> <div id="hikashop_products_switcher_hikashop_category_information_module_649" class="hikashop_products " itemscope="" itemtype="https://schema.org/itemListElement"> <div class="hk-row-fluid"> <div class="hkc-md-12 hikashop_product hikashop_product_column_1 hikashop_product_row_1" itemprop="itemList" itemscope="" itemtype="http://schema.org/ItemList"> <div class="hikashop_container "> <div class="hikashop_subcontainer "> <div class="hikashop_listing_img hikashop_product_of_category_215" id="div_hikashop_category_information_module_649_167"> <meta itemprop="name" content="Donation"/> <!-- PRODUCT IMAGE --> <div class="hikashop_product_image"> <div class="hikashop_product_image_subdiv"> <a href="/index.php/en/products/shop/product/donation" class=" "> <picture> <source srcset="/images/com_hikashop/upload/thumbnails/140x280f/donation.webp" type="image/webp"> <source srcset="/images/com_hikashop/upload/thumbnails/140x280f/donation.png" type="image/png"> <img class="hikashop_product_listing_image" title="Donation" alt="donation" src="/images/com_hikashop/upload/thumbnails/140x280f/donation.png"/> </picture> </a> <meta itemprop="image" content="/images/com_hikashop/upload/thumbnails/140x280f/donation.png"/> <meta itemprop="url" content="/index.php/en/products/shop/product/donation"> </div> </div> <!-- EO PRODUCT IMAGE --> <!-- PRODUCT PRICE --> <span class="hikashop_product_price_full"><span class="hikashop_product_price hikashop_product_price_0">¥34.85</span> <span class="hikashop_product_price_per_unit"></span></span> <!-- EO PRODUCT PRICE --> <!-- PRODUCT CUSTOM FIELDS --> <!-- EO PRODUCT CUSTOM FIELDS --> <!-- PRODUCT VOTE --> <span class="hikashop_product_vote"><div class="hikashop_vote_stars"> <div class="hk-rating-empty-label"> No vote </div> <div class="hk-rating hk-rating-empty" data-original-title="No vote" data-toggle="hk-tooltip"> <span class="hk-rate-star state-empty"></span><span class="hk-rate-star state-empty"></span><span class="hk-rate-star state-empty"></span><span class="hk-rate-star state-empty"></span><span class="hk-rate-star state-empty"></span> </div> </div> </span> <!-- EO PRODUCT VOTE --> <!-- ADD TO CART BUTTON AREA --> <!-- SALE END MESSAGE --> <!-- EO SALE END MESSAGE --> <!-- SALE START MESSAGE --> <!-- EO SALE START MESSAGE --> <!-- STOCK MESSAGE --> <span class="hikashop_product_stock_count"> </span> <!-- EO STOCK MESSAGE --> <!-- WAITLIST BUTTON --> <!-- EO WAITLIST BUTTON --> <form class="" action="/index.php/en/products/shop/product/updatecart/add-1/cid-167" method="post" name="hikashop_product_form_167_hikashop_category_information_module_649" enctype="multipart/form-data"> <!-- CUSTOM ITEM FIELDS --> <!-- EO CUSTOM ITEM FIELDS --> <!-- QUANTITY INPUT --> <div class="hikashop_quantity_form"> <input id="hikashop_product_quantity_field_2_synch" class="synchronized_add_to_cart" data-id="hikashop_product_quantity_field_2" data-product-id="167" data-cart-product-id="" type="hidden" name="synched_cart_quantity" value="0"/> <div id="hikashop_product_quantity_field_2_area" class="hikashop_product_quantity_input_div_default_main"> <div class="hikashop_product_quantity_div hikashop_product_quantity_input_div_default"> <input id="hikashop_product_quantity_field_2" type="text" value="1" onfocus="this.select()" class="hikashop_product_quantity_field form-control" name="quantity" data-hk-qty-min="0" data-hk-qty-max="0" onchange="window.hikashop.checkQuantity(this);" /> </div> <div class="hikashop_product_quantity_div hikashop_product_quantity_change_div_default"> <div class="hikashop_product_quantity_change_div_plus_default"> <a class="hikashop_product_quantity_field_change_plus hikashop_product_quantity_field_change hikabtn" href="#" data-hk-qty-mod="1" onclick="return window.hikashop.updateQuantity(this,'hikashop_product_quantity_field_2');">+</a> </div> <div class="hikashop_product_quantity_change_div_minus_default"> <a class="hikashop_product_quantity_field_change_minus hikashop_product_quantity_field_change hikabtn" href="#" data-hk-qty-mod="-1" onclick="return window.hikashop.updateQuantity(this,'hikashop_product_quantity_field_2');">–</a> </div> </div> </div> <div id="hikashop_product_quantity_field_2_buttons" class="hikashop_product_quantity_div hikashop_product_quantity_add_to_cart_div hikashop_product_quantity_add_to_cart_div_default"></div> </div> <input type="hidden" name="add" value=""/> <!-- EO QUANTITY INPUT --> <!-- ADD TO CART BUTTON --> <a class="hikabtn hikacart" onclick="if(window.hikashop.addToCart) { return window.hikashop.addToCart(this); }" data-addToCart="167" data-addTo-div="hikashop_category_information_module_649" data-addTo-class="add_in_progress" id="hikashop_product_quantity_field_2_add_to_cart_button" rel="nofollow" href="/index.php/en/products/shop/product/updatecart/add-1/cid-167"><span>Add to cart</span></a> <!-- EO ADD TO CART BUTTON --> <!-- WISHLIST BUTTON --> <!-- EO WISHLIST BUTTON --> <!-- CHOOSE OPTIONS BUTTON --> <!-- EO CHOOSE OPTIONS BUTTON --> </form> <!-- EO ADD TO CART BUTTON AREA --> <!-- COMPARISON AREA --> <!-- EO COMPARISON AREA --> <!-- CONTACT US AREA --> <!-- EO CONTACT US AREA --> <!-- PRODUCT DETAILS BUTTON AREA --> <!-- EO PRODUCT DETAILS BUTTON AREA --> </div> </div> </div> </div> </div> <div style="clear:both"></div> </div> </div> <!-- BOTTOM EXTRA DATA --> <!-- EO BOTTOM EXTRA DATA --> </div></div> </div> </div> </div> </div> <link rel="stylesheet" type="text/css" href="/media/vendor/debugbar/vendor/highlightjs/styles/github.css"> <link rel="stylesheet" type="text/css" href="/media/vendor/debugbar/debugbar.css"> <link rel="stylesheet" type="text/css" href="/media/vendor/debugbar/widgets.css"> <link rel="stylesheet" type="text/css" href="/media/vendor/debugbar/openhandler.css"> <link rel="stylesheet" type="text/css" href="/media/plg_system_debug/widgets/info/widget.min.css"> <link rel="stylesheet" type="text/css" href="/media/plg_system_debug/widgets/sqlqueries/widget.min.css"> <script type="text/javascript" src="/media/vendor/debugbar/vendor/highlightjs/highlight.pack.js" defer></script> <script type="text/javascript" src="/media/vendor/debugbar/debugbar.js" defer></script> <script type="text/javascript" src="/media/vendor/debugbar/widgets.js" defer></script> <script type="text/javascript" src="/media/vendor/debugbar/openhandler.js" defer></script> <script type="text/javascript" src="/media/plg_system_debug/widgets/info/widget.min.js" defer></script> <script type="text/javascript" src="/media/plg_system_debug/widgets/sqlqueries/widget.min.js" defer></script> <script type="module"> var phpdebugbar = new PhpDebugBar.DebugBar(); phpdebugbar.addTab("info", new PhpDebugBar.DebugBar.Tab({"icon":"info-circle","title":"J! Info", "widget": new PhpDebugBar.Widgets.InfoWidget()})); phpdebugbar.addIndicator("memory", new PhpDebugBar.DebugBar.Indicator({"icon":"cogs","tooltip":"Memory Usage"}), "right"); phpdebugbar.addTab("request", new PhpDebugBar.DebugBar.Tab({"icon":"tags","title":"Request", "widget": new PhpDebugBar.Widgets.VariableListWidget()})); phpdebugbar.addTab("session", new PhpDebugBar.DebugBar.Tab({"icon":"key","title":"Session", "widget": new PhpDebugBar.Widgets.VariableListWidget()})); phpdebugbar.addIndicator("profileTime", new PhpDebugBar.DebugBar.Indicator({"icon":"clock-o","tooltip":"Request Duration"}), "right"); phpdebugbar.addTab("profile", new PhpDebugBar.DebugBar.Tab({"icon":"clock-o","title":"Profile", "widget": new PhpDebugBar.Widgets.TimelineWidget()})); phpdebugbar.addTab("queries", new PhpDebugBar.DebugBar.Tab({"icon":"database","title":"Queries", "widget": new PhpDebugBar.Widgets.SQLQueriesWidget()})); phpdebugbar.addTab("log", new PhpDebugBar.DebugBar.Tab({"icon":"list-alt","title":"Log", "widget": new PhpDebugBar.Widgets.MessagesWidget()})); phpdebugbar.setDataMap({ "info": ["info", {}], "memory": ["memory.peak_usage_str", '0B'], "request": ["request", {}], "session": ["session.data", []], "profileTime": ["profile.duration_str", '0ms'], "profile": ["profile", {}], "queries": ["queries.data", []], "queries:badge": ["queries.count", null], "log": ["log.messages", []], "log:badge": ["log.count", null] }); phpdebugbar.restoreState(); phpdebugbar.ajaxHandler = new PhpDebugBar.AjaxHandler(phpdebugbar, undefined, true); phpdebugbar.ajaxHandler.bindToXHR(); phpdebugbar.addDataSet({"__meta":{"id":"X84ff4509a759a1c14189e651210039de","datetime":"2026-02-14 07:06:01","utime":1771052761.371681,"method":"GET","uri":"\/index.php\/en\/forum-kunena\/forum\/contest-code\/79-2020-nxp-cup-innovation-challenge-contest-autonomous-racing-car","ip":"216.73.216.9"},"info":{"phpVersion":"8.5.3","joomlaVersion":"5.4.3-rc1","requestId":"X84ff4509a759a1c14189e651210039de","identity":{"type":"guest"},"response":{"status_code":200},"template":{"template":"cassiopeia","home":"0","id":85},"database":{"dbserver":"mysql","dbversion":"8.0.45","dbcollation":"utf8mb4_unicode_ci","dbconnectioncollation":"utf8mb4_0900_ai_ci","dbconnectionencryption":"","dbconnencryptsupported":true}},"juser":{"user_id":0},"memory":{"peak_usage":26031152,"peak_usage_str":"24.825MB"},"request":{"$_GET":"[]","$_POST":"[]","$_SESSION":"array:1 [\n \u0022joomla\u0022 =\u003E \u0022***redacted***\u0022\n]","$_COOKIE":"[]","$_SERVER":"array:62 [\n \u0022USER\u0022 =\u003E \u0022www-data\u0022\n \u0022HOME\u0022 =\u003E \u0022\/var\/www\u0022\n \u0022PATH_TRANSLATED\u0022 =\u003E \u0022redirect:\/index.php\/forum-kunena\/forum\/contest-code\/79-2020-nxp-cup-innovation-challenge-contest-autonomous-racing-car\u0022\n \u0022PATH_INFO\u0022 =\u003E \u0022\/en\/forum-kunena\/forum\/contest-code\/79-2020-nxp-cup-innovation-challenge-contest-autonomous-racing-car\u0022\n \u0022SCRIPT_NAME\u0022 =\u003E \u0022\/index.php\u0022\n \u0022REQUEST_URI\u0022 =\u003E \u0022\/index.php\/en\/forum-kunena\/forum\/contest-code\/79-2020-nxp-cup-innovation-challenge-contest-autonomous-racing-car\u0022\n \u0022QUERY_STRING\u0022 =\u003E \u0022\u0022\n \u0022REQUEST_METHOD\u0022 =\u003E \u0022GET\u0022\n \u0022SERVER_PROTOCOL\u0022 =\u003E \u0022HTTP\/1.1\u0022\n \u0022GATEWAY_INTERFACE\u0022 =\u003E \u0022CGI\/1.1\u0022\n \u0022REMOTE_PORT\u0022 =\u003E \u00222938\u0022\n \u0022SCRIPT_FILENAME\u0022 =\u003E \u0022\/var\/www\/html\/index.php\u0022\n \u0022SERVER_ADMIN\u0022 =\u003E \u0022sale@bluetooth.com.cn\u0022\n \u0022CONTEXT_DOCUMENT_ROOT\u0022 =\u003E \u0022\/var\/www\/html\u0022\n \u0022CONTEXT_PREFIX\u0022 =\u003E \u0022\u0022\n \u0022REQUEST_SCHEME\u0022 =\u003E \u0022https\u0022\n \u0022DOCUMENT_ROOT\u0022 =\u003E \u0022\/var\/www\/html\u0022\n \u0022REMOTE_ADDR\u0022 =\u003E \u0022216.73.216.9\u0022\n \u0022SERVER_PORT\u0022 =\u003E \u0022443\u0022\n \u0022SERVER_ADDR\u0022 =\u003E \u0022192.168.9.207\u0022\n \u0022SERVER_NAME\u0022 =\u003E \u0022www.bluetooth.com.cn\u0022\n \u0022SERVER_SOFTWARE\u0022 =\u003E \u0022Apache\/2.4.66 (Ubuntu)\u0022\n \u0022SERVER_SIGNATURE\u0022 =\u003E \u0022\u003Caddress\u003EApache\/2.4.66 (Ubuntu) Server at www.bluetooth.com.cn Port 443\u003C\/address\u003E\\n\u0022\n \u0022PATH\u0022 =\u003E \u0022\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\u0022\n \u0022HTTP_HOST\u0022 =\u003E \u0022www.bluetooth.com.cn\u0022\n \u0022HTTP_ACCEPT_ENCODING\u0022 =\u003E \u0022gzip, br, zstd, deflate\u0022\n \u0022HTTP_USER_AGENT\u0022 =\u003E \u0022Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)\u0022\n \u0022HTTP_ACCEPT\u0022 =\u003E \u0022*\/*\u0022\n \u0022proxy-nokeepalive\u0022 =\u003E \u00221\u0022\n \u0022SSL_SESSION_RESUMED\u0022 =\u003E \u0022Initial\u0022\n \u0022SSL_SESSION_ID\u0022 =\u003E \u002234a7efc74eababae3955ea9c8320395f70ed3de6db4558a569c3ea0512239a88\u0022\n \u0022SSL_SERVER_A_SIG\u0022 =\u003E \u0022sha256WithRSAEncryption\u0022\n \u0022SSL_SERVER_A_KEY\u0022 =\u003E \u0022rsaEncryption\u0022\n \u0022SSL_SERVER_I_DN\u0022 =\u003E \u0022CN=Encryption Everywhere DV TLS CA - G2,OU=www.digicert.com,O=DigiCert Inc,C=US\u0022\n \u0022SSL_SERVER_S_DN\u0022 =\u003E \u0022CN=bluetooth.com.cn\u0022\n \u0022SSL_SERVER_V_END\u0022 =\u003E \u0022Apr 4 23:59:59 2026 GMT\u0022\n \u0022SSL_SERVER_V_START\u0022 =\u003E \u0022Jan 5 00:00:00 2026 GMT\u0022\n \u0022SSL_SERVER_M_SERIAL\u0022 =\u003E \u00220774AEE93AD852BA3E418B6AD017D4C6\u0022\n \u0022SSL_SERVER_M_VERSION\u0022 =\u003E \u00223\u0022\n \u0022SSL_CLIENT_VERIFY\u0022 =\u003E \u0022NONE\u0022\n \u0022SSL_CIPHER_ALGKEYSIZE\u0022 =\u003E \u0022256\u0022\n \u0022SSL_CIPHER_USEKEYSIZE\u0022 =\u003E \u0022256\u0022\n \u0022SSL_CIPHER_EXPORT\u0022 =\u003E \u0022false\u0022\n \u0022SSL_CIPHER\u0022 =\u003E \u0022TLS_AES_256_GCM_SHA384\u0022\n \u0022SSL_COMPRESS_METHOD\u0022 =\u003E \u0022NULL\u0022\n \u0022SSL_SECURE_RENEG\u0022 =\u003E \u0022true\u0022\n \u0022SSL_PROTOCOL\u0022 =\u003E \u0022TLSv1.3\u0022\n \u0022SSL_VERSION_LIBRARY\u0022 =\u003E \u0022OpenSSL\/3.0.2\u0022\n \u0022SSL_VERSION_INTERFACE\u0022 =\u003E \u0022mod_ssl\/2.4.66\u0022\n \u0022SSL_SERVER_SAN_DNS_1\u0022 =\u003E \u0022www.bluetooth.com.cn\u0022\n \u0022SSL_SERVER_SAN_DNS_0\u0022 =\u003E \u0022bluetooth.com.cn\u0022\n \u0022SSL_SERVER_I_DN_CN\u0022 =\u003E \u0022Encryption Everywhere DV TLS CA - G2\u0022\n \u0022SSL_SERVER_I_DN_OU\u0022 =\u003E \u0022www.digicert.com\u0022\n \u0022SSL_SERVER_I_DN_O\u0022 =\u003E \u0022DigiCert Inc\u0022\n \u0022SSL_SERVER_I_DN_C\u0022 =\u003E \u0022US\u0022\n \u0022SSL_SERVER_S_DN_CN\u0022 =\u003E \u0022bluetooth.com.cn\u0022\n \u0022SSL_TLS_SNI\u0022 =\u003E \u0022www.bluetooth.com.cn\u0022\n \u0022HTTPS\u0022 =\u003E \u0022on\u0022\n \u0022FCGI_ROLE\u0022 =\u003E \u0022RESPONDER\u0022\n \u0022PHP_SELF\u0022 =\u003E \u0022\/index.php\/en\/forum-kunena\/forum\/contest-code\/79-2020-nxp-cup-innovation-challenge-contest-autonomous-racing-car\u0022\n \u0022REQUEST_TIME_FLOAT\u0022 =\u003E 1771052760.6257\n \u0022REQUEST_TIME\u0022 =\u003E 1771052760\n]"},"session":{"data":{"session":"array:3 [\n \u0022counter\u0022 =\u003E 1\n \u0022timer\u0022 =\u003E array:3 [\n \u0022start\u0022 =\u003E 1771052760\n \u0022last\u0022 =\u003E 1771052760\n \u0022now\u0022 =\u003E 1771052760\n ]\n \u0022token\u0022 =\u003E \u0022***redacted***\u0022\n]","registry":"array:3 [\n \u0022data\u0022 =\u003E array:2 [\n \u0022com_kunena\u0022 =\u003E array:2 [\n \u0022user0_read\u0022 =\u003E array:88 [\n 113 =\u003E 113\n 26 =\u003E 26\n 15 =\u003E 15\n 129 =\u003E 129\n 23 =\u003E 23\n 66 =\u003E 66\n 1 =\u003E 1\n 62 =\u003E 62\n 101 =\u003E 101\n 123 =\u003E 123\n 60 =\u003E 60\n 94 =\u003E 94\n 127 =\u003E 127\n 19 =\u003E 19\n 5 =\u003E 5\n 2 =\u003E 2\n 17 =\u003E 17\n 74 =\u003E 74\n 27 =\u003E 27\n 131 =\u003E 131\n 67 =\u003E 67\n 63 =\u003E 63\n 114 =\u003E 114\n 6 =\u003E 6\n 3 =\u003E 3\n 125 =\u003E 125\n 68 =\u003E 68\n 133 =\u003E 133\n 118 =\u003E 118\n 24 =\u003E 24\n 64 =\u003E 64\n 7 =\u003E 7\n 28 =\u003E 28\n 29 =\u003E 29\n 25 =\u003E 25\n 124 =\u003E 124\n 8 =\u003E 8\n 30 =\u003E 30\n 9 =\u003E 9\n 22 =\u003E 22\n 132 =\u003E 132\n 32 =\u003E 32\n 10 =\u003E 10\n 4 =\u003E 4\n 33 =\u003E 33\n 14 =\u003E 14\n 11 =\u003E 11\n 34 =\u003E 34\n 16 =\u003E 16\n 12 =\u003E 12\n 13 =\u003E 13\n 18 =\u003E 18\n 35 =\u003E 35\n 46 =\u003E 46\n 61 =\u003E 61\n 31 =\u003E 31\n 37 =\u003E 37\n 65 =\u003E 65\n 71 =\u003E 71\n 36 =\u003E 36\n 38 =\u003E 38\n 78 =\u003E 78\n 39 =\u003E 39\n 82 =\u003E 82\n 40 =\u003E 40\n 92 =\u003E 92\n 98 =\u003E 98\n 41 =\u003E 41\n 112 =\u003E 112\n 42 =\u003E 42\n 43 =\u003E 43\n 117 =\u003E 117\n 122 =\u003E 122\n 44 =\u003E 44\n 45 =\u003E 45\n 126 =\u003E 126\n 128 =\u003E 128\n 47 =\u003E 47\n 48 =\u003E 48\n 49 =\u003E 49\n 50 =\u003E 50\n 51 =\u003E 51\n 52 =\u003E 52\n 53 =\u003E 53\n 54 =\u003E 54\n 55 =\u003E 55\n 115 =\u003E 115\n 116 =\u003E 116\n ]\n \u0022topic\u0022 =\u003E array:1 [\n \u0022lasthit\u0022 =\u003E 79\n ]\n ]\n \u0022com_hikashop\u0022 =\u003E array:2 [\n \u0022user_id\u0022 =\u003E 0\n \u0022zone_id\u0022 =\u003E \u002244\u0022\n ]\n ]\n \u0022initialized\u0022 =\u003E false\n \u0022separator\u0022 =\u003E \u0022.\u0022\n]","user":"array:21 [\n \u0022id\u0022 =\u003E 0\n \u0022name\u0022 =\u003E null\n \u0022username\u0022 =\u003E null\n \u0022email\u0022 =\u003E null\n \u0022password\u0022 =\u003E \u0022***redacted***\u0022\n \u0022password_clear\u0022 =\u003E \u0022***redacted***\u0022\n \u0022block\u0022 =\u003E null\n \u0022sendEmail\u0022 =\u003E 0\n \u0022registerDate\u0022 =\u003E null\n \u0022lastvisitDate\u0022 =\u003E null\n \u0022activation\u0022 =\u003E null\n \u0022params\u0022 =\u003E null\n \u0022groups\u0022 =\u003E array:1 [\n 0 =\u003E \u00229\u0022\n ]\n \u0022guest\u0022 =\u003E 1\n \u0022lastResetTime\u0022 =\u003E null\n \u0022resetCount\u0022 =\u003E null\n \u0022requireReset\u0022 =\u003E null\n \u0022typeAlias\u0022 =\u003E null\n \u0022otpKey\u0022 =\u003E \u0022***redacted***\u0022\n \u0022otep\u0022 =\u003E \u0022***redacted***\u0022\n \u0022authProvider\u0022 =\u003E null\n]","plg_system_languagefilter":"array:1 [\n \u0022language\u0022 =\u003E \u0022en-GB\u0022\n]","fabrik":"array:1 [\n \u0022js\u0022 =\u003E array:1 [\n \u0022head\u0022 =\u003E array:1 [\n \u0022cache\u0022 =\u003E array:1 [\n \u00222c3f6e85dd1ed593aaa332f135572056\u0022 =\u003E \u0022{\u0022https:\\\/\\\/www.bluetooth.com.cn\\\/components\\\/com_kunena\\\/template\\\/aurelia\\\/assets\\\/js\\\/main.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:{\u0022relative\u0022:false,\u0022pathOnly\u0022:false,\u0022detectBrowser\u0022:false,\u0022detectDebug\u0022:true}},\u0022https:\\\/\\\/www.bluetooth.com.cn\\\/components\\\/com_kunena\\\/template\\\/aurelia\\\/assets\\\/js\\\/tooltips.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:{\u0022relative\u0022:false,\u0022pathOnly\u0022:false,\u0022detectBrowser\u0022:false,\u0022detectDebug\u0022:true}},\u0022https:\\\/\\\/www.bluetooth.com.cn\\\/components\\\/com_kunena\\\/template\\\/aurelia\\\/assets\\\/js\\\/offcanvas.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:{\u0022relative\u0022:false,\u0022pathOnly\u0022:false,\u0022detectBrowser\u0022:false,\u0022detectDebug\u0022:true}},\u0022https:\\\/\\\/www.bluetooth.com.cn\\\/media\\\/kunena\\\/core\\\/js\\\/localstorage.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:{\u0022relative\u0022:false,\u0022pathOnly\u0022:false,\u0022detectBrowser\u0022:false,\u0022detectDebug\u0022:true}},\u0022https:\\\/\\\/www.bluetooth.com.cn\\\/components\\\/com_kunena\\\/template\\\/aurelia\\\/assets\\\/js\\\/topic.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:{\u0022relative\u0022:false,\u0022pathOnly\u0022:false,\u0022detectBrowser\u0022:false,\u0022detectDebug\u0022:true}},\u0022\\\/media\\\/com_hikashop\\\/js\\\/hikashop.js?v=620\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:[]},\u0022\\\/media\\\/com_hikashop\\\/js\\\/jquery-ui.min.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:[]},\u0022\\\/media\\\/com_hikashop\\\/js\\\/tooltip.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:[]},\u0022\\\/media\\\/com_hikashop\\\/js\\\/vote.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:[]},\u0022\\\/media\\\/com_hikashop\\\/js\\\/notify.min.js?v=620\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:[]},\u0022\\\/plugins\\\/hikashop\\\/cartnotify\\\/media\\\/notify.js\u0022:{\u0022type\u0022:\u0022text\\\/javascript\u0022,\u0022options\u0022:[]}}\u0022\n ]\n ]\n ]\n]"}},"profile":{"start":1771052760.625674,"end":1771052761.369727,"duration":0.7440528869628906,"duration_str":"744ms","measures":[{"label":"afterLoad (84.34KB)","start":1771052760.625674,"relative_start":0,"end":1771052760.626064,"relative_end":-0.7436628341674805,"duration":0.00039005279541015625,"duration_str":"390\u03bcs","params":[],"collector":null},{"label":"afterInitialise (2.21MB)","start":1771052760.626064,"relative_start":0.00039005279541015625,"end":1771052760.6385572,"relative_end":-0.7311697006225586,"duration":0.012493133544921875,"duration_str":"12.49ms","params":[],"collector":null},{"label":"afterRoute (858.38KB)","start":1771052760.6385572,"relative_start":0.012883186340332031,"end":1771052760.649264,"relative_end":-0.7204627990722656,"duration":0.010706901550292969,"duration_str":"10.71ms","params":[],"collector":null},{"label":"beforeRenderComponent com_kunena (54.15KB)","start":1771052760.649264,"relative_start":0.023590087890625,"end":1771052760.649753,"relative_end":-0.7199738025665283,"duration":0.0004889965057373047,"duration_str":"489\u03bcs","params":[],"collector":null},{"label":"Before Access::preloadComponents (all components) (1.73MB)","start":1771052760.649753,"relative_start":0.024079084396362305,"end":1771052760.710128,"relative_end":-0.6595988273620605,"duration":0.06037497520446777,"duration_str":"60.37ms","params":[],"collector":null},{"label":"After Access::preloadComponents (all components) (151.39KB)","start":1771052760.710128,"relative_start":0.08445405960083008,"end":1771052760.71143,"relative_end":-0.6582968235015869,"duration":0.0013020038604736328,"duration_str":"1.3ms","params":[],"collector":null},{"label":"Before Access::getAssetRules (id:1832 name:com_kunena) (1.54KB)","start":1771052760.71143,"relative_start":0.08575606346130371,"end":1771052760.71145,"relative_end":-0.6582767963409424,"duration":2.002716064453125e-5,"duration_str":"20\u03bcs","params":[],"collector":null},{"label":"After Access::getAssetRules (id:1832 name:com_kunena) (5.17KB)","start":1771052760.71145,"relative_start":0.08577609062194824,"end":1771052760.711503,"relative_end":-0.6582238674163818,"duration":5.2928924560546875e-5,"duration_str":"53\u03bcs","params":[],"collector":null},{"label":"afterRenderComponent com_kunena (4.59MB)","start":1771052760.711503,"relative_start":0.08582901954650879,"end":1771052761.240714,"relative_end":-0.1290128231048584,"duration":0.5292110443115234,"duration_str":"529ms","params":[],"collector":null},{"label":"afterDispatch (165.38KB)","start":1771052761.240714,"relative_start":0.6150400638580322,"end":1771052761.2441082,"relative_end":-0.12561869621276855,"duration":0.0033941268920898438,"duration_str":"3.39ms","params":[],"collector":null},{"label":"beforeRenderRawModule mod_hikashop (Investment Cooperation) (236.42KB)","start":1771052761.2441082,"relative_start":0.6184341907501221,"end":1771052761.244878,"relative_end":-0.12484884262084961,"duration":0.0007698535919189453,"duration_str":"770\u03bcs","params":[],"collector":null},{"label":"afterRenderRawModule mod_hikashop (Investment Cooperation) (7.79MB)","start":1771052761.244878,"relative_start":0.619204044342041,"end":1771052761.3091471,"relative_end":-0.060579776763916016,"duration":0.0642690658569336,"duration_str":"64.27ms","params":[],"collector":null},{"label":"beforeRenderRawModule mod_hikashop (Donation) (25.61KB)","start":1771052761.3091471,"relative_start":0.6834731101989746,"end":1771052761.30941,"relative_end":-0.06031680107116699,"duration":0.00026297569274902344,"duration_str":"263\u03bcs","params":[],"collector":null},{"label":"afterRenderRawModule mod_hikashop (Donation) (3.16MB)","start":1771052761.30941,"relative_start":0.6837360858917236,"end":1771052761.3337212,"relative_end":-0.03600573539733887,"duration":0.024311065673828125,"duration_str":"24.31ms","params":[],"collector":null},{"label":"Before Access::getAssetRules (id:16 name:com_menus) (3.67KB)","start":1771052761.3337212,"relative_start":0.7080471515655518,"end":1771052761.3341992,"relative_end":-0.035527706146240234,"duration":0.0004780292510986328,"duration_str":"478\u03bcs","params":[],"collector":null},{"label":"After Access::getAssetRules (id:16 name:com_menus) (4.8KB)","start":1771052761.3341992,"relative_start":0.7085251808166504,"end":1771052761.3342311,"relative_end":-0.035495758056640625,"duration":3.1948089599609375e-5,"duration_str":"32\u03bcs","params":[],"collector":null},{"label":"beforeRenderModule mod_hikashop (Investment Cooperation) (55.33KB)","start":1771052761.3342311,"relative_start":0.70855712890625,"end":1771052761.3344831,"relative_end":-0.03524374961853027,"duration":0.00025200843811035156,"duration_str":"252\u03bcs","params":[],"collector":null},{"label":"afterRenderModule mod_hikashop (Investment Cooperation) (19.11KB)","start":1771052761.3344831,"relative_start":0.7088091373443604,"end":1771052761.3346741,"relative_end":-0.03505277633666992,"duration":0.00019097328186035156,"duration_str":"191\u03bcs","params":[],"collector":null},{"label":"beforeRenderModule mod_hikashop (Donation) (26.44KB)","start":1771052761.3346741,"relative_start":0.7090001106262207,"end":1771052761.3348541,"relative_end":-0.03487277030944824,"duration":0.0001800060272216797,"duration_str":"180\u03bcs","params":[],"collector":null},{"label":"afterRenderModule mod_hikashop (Donation) (17.49KB)","start":1771052761.3348541,"relative_start":0.7091801166534424,"end":1771052761.3349261,"relative_end":-0.03480076789855957,"duration":7.200241088867188e-5,"duration_str":"72\u03bcs","params":[],"collector":null},{"label":"afterRender (1.96MB)","start":1771052761.3349261,"relative_start":0.709252119064331,"end":1771052761.368745,"relative_end":-0.0009818077087402344,"duration":0.033818960189819336,"duration_str":"33.82ms","params":[],"collector":null}],"rawMarks":[{"prefix":"Application","time":0.39005279541015625,"totalTime":0.39005279541015625,"memory":0.08235931396484375,"totalMemory":0.48246002197265625,"label":"afterLoad"},{"prefix":"Application","time":12.493133544921875,"totalTime":12.883186340332031,"memory":2.2104873657226562,"totalMemory":2.6929473876953125,"label":"afterInitialise"},{"prefix":"Application","time":10.706901550292969,"totalTime":23.590087890625,"memory":0.8382568359375,"totalMemory":3.5312042236328125,"label":"afterRoute"},{"prefix":"Application","time":0.4889965057373047,"totalTime":24.079084396362305,"memory":0.05287933349609375,"totalMemory":3.5840835571289062,"label":"beforeRenderComponent com_kunena"},{"prefix":"Application","time":60.37497520446777,"totalTime":84.45405960083008,"memory":1.7332839965820312,"totalMemory":5.3173675537109375,"label":"Before Access::preloadComponents (all components)"},{"prefix":"Application","time":1.3020038604736328,"totalTime":85.75606346130371,"memory":0.1478424072265625,"totalMemory":5.4652099609375,"label":"After Access::preloadComponents (all components)"},{"prefix":"Application","time":0.02002716064453125,"totalTime":85.77609062194824,"memory":-0.00150299072265625,"totalMemory":5.463706970214844,"label":"Before Access::getAssetRules (id:1832 name:com_kunena)"},{"prefix":"Application","time":0.052928924560546875,"totalTime":85.82901954650879,"memory":0.0050506591796875,"totalMemory":5.468757629394531,"label":"After Access::getAssetRules (id:1832 name:com_kunena)"},{"prefix":"Application","time":529.2110443115234,"totalTime":615.0400638580322,"memory":4.585990905761719,"totalMemory":10.05474853515625,"label":"afterRenderComponent com_kunena"},{"prefix":"Application","time":3.3941268920898438,"totalTime":618.4341907501221,"memory":0.16150665283203125,"totalMemory":10.216255187988281,"label":"afterDispatch"},{"prefix":"Application","time":0.7698535919189453,"totalTime":619.204044342041,"memory":0.2308807373046875,"totalMemory":10.447135925292969,"label":"beforeRenderRawModule mod_hikashop (Investment Cooperation)"},{"prefix":"Application","time":64.2690658569336,"totalTime":683.4731101989746,"memory":7.793998718261719,"totalMemory":18.241134643554688,"label":"afterRenderRawModule mod_hikashop (Investment Cooperation)"},{"prefix":"Application","time":0.26297569274902344,"totalTime":683.7360858917236,"memory":0.0250091552734375,"totalMemory":18.266143798828125,"label":"beforeRenderRawModule mod_hikashop (Donation)"},{"prefix":"Application","time":24.311065673828125,"totalTime":708.0471515655518,"memory":3.1643218994140625,"totalMemory":21.430465698242188,"label":"afterRenderRawModule mod_hikashop (Donation)"},{"prefix":"Application","time":0.4780292510986328,"totalTime":708.5251808166504,"memory":-0.0035858154296875,"totalMemory":21.4268798828125,"label":"Before Access::getAssetRules (id:16 name:com_menus)"},{"prefix":"Application","time":0.031948089599609375,"totalTime":708.55712890625,"memory":0.0046844482421875,"totalMemory":21.431564331054688,"label":"After Access::getAssetRules (id:16 name:com_menus)"},{"prefix":"Application","time":0.25200843811035156,"totalTime":708.8091373443604,"memory":0.0540313720703125,"totalMemory":21.485595703125,"label":"beforeRenderModule mod_hikashop (Investment Cooperation)"},{"prefix":"Application","time":0.19097328186035156,"totalTime":709.0001106262207,"memory":0.0186614990234375,"totalMemory":21.504257202148438,"label":"afterRenderModule mod_hikashop (Investment Cooperation)"},{"prefix":"Application","time":0.1800060272216797,"totalTime":709.1801166534424,"memory":0.02581787109375,"totalMemory":21.530075073242188,"label":"beforeRenderModule mod_hikashop (Donation)"},{"prefix":"Application","time":0.07200241088867188,"totalTime":709.252119064331,"memory":0.01708221435546875,"totalMemory":21.547157287597656,"label":"afterRenderModule mod_hikashop (Donation)"},{"prefix":"Application","time":33.818960189819336,"totalTime":743.0710792541504,"memory":1.9590072631835938,"totalMemory":23.50616455078125,"label":"afterRender"}]},"queries":{"data":{"statements":[{"sql":"select distinct reference_table from ff583_falang_content","params":[],"duration_str":"1.03ms","memory_str":"1.68KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:224","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"UPDATE ff583_extensions\nSET enabled=1\nWHERE `type`=\u0027plugin\u0027 AND `element`=\u0027jacontenttype\u0027 AND `folder`=\u0027ajax\u0027","params":[],"duration_str":"165\u03bcs","memory_str":"48B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:133","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM ff583_menu\nWHERE alias =\u0027en\u0027 AND published=1","params":[],"duration_str":"178\u03bcs","memory_str":"2.78KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT joomlatablename,tablepkID FROM `ff583_falang_tableinfo`","params":[],"duration_str":"107\u03bcs","memory_str":"1.06KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM ff583_menu\nWHERE alias =\u0027forum-kunena\u0027 AND published=1","params":[],"duration_str":"133\u03bcs","memory_str":"3.16KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (296) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"280\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT sampleData\nFROM ff583_kunena_version\nORDER BY id DESC LIMIT 1","params":[],"duration_str":"78\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_aliases`\nWHERE `alias` LIKE \u0027contest-code%\u0027","params":[],"duration_str":"106\u03bcs","memory_str":"704B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL TABLES WHERE table_type=\u0022BASE TABLE\u0022","params":[],"duration_str":"3.62ms","memory_str":"29.19KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL COLUMNS FROM `ff583_kunena_sessions`","params":[],"duration_str":"538\u03bcs","memory_str":"1.34KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL COLUMNS FROM `ff583_kunena_users`","params":[],"duration_str":"703\u03bcs","memory_str":"1.77KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT `params`\n FROM `ff583_comprofiler_plugin`\n WHERE `id` = 1","params":[],"duration_str":"107\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *, CONCAT_WS( \u0022\/\u0022, `folder`, `element` ) AS lookup\n FROM `ff583_comprofiler_plugin`\n WHERE `published` = 1\n AND `viewaccesslevel` IN (1,5,8)\n AND `type` = \u0027user\u0027\n ORDER BY `ordering`","params":[],"duration_str":"214\u03bcs","memory_str":"1.77KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT `id`,`name`,`rules`,`parent_id`\nFROM `ff583_assets`\nWHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42,:preparedArray43,:preparedArray44,:preparedArray45,:preparedArray46,:preparedArray47,:preparedArray48,:preparedArray49,:preparedArray50,:preparedArray51,:preparedArray52,:preparedArray53,:preparedArray54,:preparedArray55)","params":{":preparedArray1":{"value":"root.1","dataType":"string","length":0,"driverOptions":[]},":preparedArray2":{"value":"com_actionlogs","dataType":"string","length":0,"driverOptions":[]},":preparedArray3":{"value":"com_admin","dataType":"string","length":0,"driverOptions":[]},":preparedArray4":{"value":"com_aipublisher","dataType":"string","length":0,"driverOptions":[]},":preparedArray5":{"value":"com_ajax","dataType":"string","length":0,"driverOptions":[]},":preparedArray6":{"value":"com_akeebabackup","dataType":"string","length":0,"driverOptions":[]},":preparedArray7":{"value":"com_api","dataType":"string","length":0,"driverOptions":[]},":preparedArray8":{"value":"com_associations","dataType":"string","length":0,"driverOptions":[]},":preparedArray9":{"value":"com_banners","dataType":"string","length":0,"driverOptions":[]},":preparedArray10":{"value":"com_bluetoothads","dataType":"string","length":0,"driverOptions":[]},":preparedArray11":{"value":"com_cache","dataType":"string","length":0,"driverOptions":[]},":preparedArray12":{"value":"com_categories","dataType":"string","length":0,"driverOptions":[]},":preparedArray13":{"value":"com_checkin","dataType":"string","length":0,"driverOptions":[]},":preparedArray14":{"value":"com_comprofiler","dataType":"string","length":0,"driverOptions":[]},":preparedArray15":{"value":"com_config","dataType":"string","length":0,"driverOptions":[]},":preparedArray16":{"value":"com_contact","dataType":"string","length":0,"driverOptions":[]},":preparedArray17":{"value":"com_content","dataType":"string","length":0,"driverOptions":[]},":preparedArray18":{"value":"com_contenthistory","dataType":"string","length":0,"driverOptions":[]},":preparedArray19":{"value":"com_cpanel","dataType":"string","length":0,"driverOptions":[]},":preparedArray20":{"value":"com_evcharging","dataType":"string","length":0,"driverOptions":[]},":preparedArray21":{"value":"com_eventgallery","dataType":"string","length":0,"driverOptions":[]},":preparedArray22":{"value":"com_fabrik","dataType":"string","length":0,"driverOptions":[]},":preparedArray23":{"value":"com_falang","dataType":"string","length":0,"driverOptions":[]},":preparedArray24":{"value":"com_fields","dataType":"string","length":0,"driverOptions":[]},":preparedArray25":{"value":"com_guidedtours","dataType":"string","length":0,"driverOptions":[]},":preparedArray26":{"value":"com_hikashop","dataType":"string","length":0,"driverOptions":[]},":preparedArray27":{"value":"com_installer","dataType":"string","length":0,"driverOptions":[]},":preparedArray28":{"value":"com_jaextmanager","dataType":"string","length":0,"driverOptions":[]},":preparedArray29":{"value":"com_jce","dataType":"string","length":0,"driverOptions":[]},":preparedArray30":{"value":"com_jdownloads","dataType":"string","length":0,"driverOptions":[]},":preparedArray31":{"value":"com_jevents","dataType":"string","length":0,"driverOptions":[]},":preparedArray32":{"value":"com_joomlaupdate","dataType":"string","length":0,"driverOptions":[]},":preparedArray33":{"value":"com_jsjobs","dataType":"string","length":0,"driverOptions":[]},":preparedArray34":{"value":"com_kunena","dataType":"string","length":0,"driverOptions":[]},":preparedArray35":{"value":"com_languages","dataType":"string","length":0,"driverOptions":[]},":preparedArray36":{"value":"com_login","dataType":"string","length":0,"driverOptions":[]},":preparedArray37":{"value":"com_mailer","dataType":"string","length":0,"driverOptions":[]},":preparedArray38":{"value":"com_mails","dataType":"string","length":0,"driverOptions":[]},":preparedArray39":{"value":"com_media","dataType":"string","length":0,"driverOptions":[]},":preparedArray40":{"value":"com_menus","dataType":"string","length":0,"driverOptions":[]},":preparedArray41":{"value":"com_messages","dataType":"string","length":0,"driverOptions":[]},":preparedArray42":{"value":"com_modules","dataType":"string","length":0,"driverOptions":[]},":preparedArray43":{"value":"com_newsfeeds","dataType":"string","length":0,"driverOptions":[]},":preparedArray44":{"value":"com_plugins","dataType":"string","length":0,"driverOptions":[]},":preparedArray45":{"value":"com_postinstall","dataType":"string","length":0,"driverOptions":[]},":preparedArray46":{"value":"com_privacy","dataType":"string","length":0,"driverOptions":[]},":preparedArray47":{"value":"com_redirect","dataType":"string","length":0,"driverOptions":[]},":preparedArray48":{"value":"com_scheduler","dataType":"string","length":0,"driverOptions":[]},":preparedArray49":{"value":"com_smartelder","dataType":"string","length":0,"driverOptions":[]},":preparedArray50":{"value":"com_tags","dataType":"string","length":0,"driverOptions":[]},":preparedArray51":{"value":"com_templates","dataType":"string","length":0,"driverOptions":[]},":preparedArray52":{"value":"com_uddeim","dataType":"string","length":0,"driverOptions":[]},":preparedArray53":{"value":"com_users","dataType":"string","length":0,"driverOptions":[]},":preparedArray54":{"value":"com_workflow","dataType":"string","length":0,"driverOptions":[]},":preparedArray55":{"value":"com_wrapper","dataType":"string","length":0,"driverOptions":[]}},"duration_str":"724\u03bcs","memory_str":"8.19KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT DISTINCT(user_id)\nFROM `ff583_usergroups` AS `ug1`\nINNER JOIN `ff583_usergroups` AS `ug2` ON ug2.lft \u003E= ug1.lft AND ug1.rgt \u003E= ug2.rgt\nINNER JOIN `ff583_user_usergroup_map` AS `m` ON ug2.id = m.group_id\nWHERE ug1.id IN ( 8)","params":[],"duration_str":"748\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT DISTINCT(user_id)\nFROM `ff583_usergroups` AS `ug1`\nINNER JOIN `ff583_usergroups` AS `ug2` ON ug2.lft \u003E= ug1.lft AND ug1.rgt \u003E= ug2.rgt\nINNER JOIN `ff583_user_usergroup_map` AS `m` ON ug2.id = m.group_id\nWHERE ug1.id IN ( 7)","params":[],"duration_str":"585\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT `user_id`,`category_id`,`role`\nFROM `ff583_kunena_user_categories`\nWHERE `role` IN (1,2)","params":[],"duration_str":"227\u03bcs","memory_str":"1.87KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nORDER BY `ordering`,`name`","params":[],"duration_str":"562\u03bcs","memory_str":"38.14KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (113,26,21,15,129,23,66,1,62,101,123,60,94,127,119,19,5,2,17,74,27,131,67,63,114,6,20,3,120,125,68,133,118,24,64,7,28,121,29,25,124,8,30,9,22,132,32,10,4,33,14,11,34,16,12,13,18,35,46,61,31,37,65,71,36,38,78,39,82,40,92,98,41,112,42,43,117,122,44,45,126,128,47,48,49,50,51,52,53,54,55,115,116) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"4.45ms","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL COLUMNS FROM `ff583_kunena_categories`","params":[],"duration_str":"865\u03bcs","memory_str":"1.89KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027113\u0027","params":[],"duration_str":"162\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (113) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"244\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027112\u0027","params":[],"duration_str":"156\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (112) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"228\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002726\u0027","params":[],"duration_str":"149\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (26) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"230\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002725\u0027","params":[],"duration_str":"144\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (25) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"234\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002721\u0027","params":[],"duration_str":"141\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (21) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"221\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002720\u0027","params":[],"duration_str":"163\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (20) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"225\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002715\u0027","params":[],"duration_str":"142\u03bcs","memory_str":"7.16KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (15) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"254\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002714\u0027","params":[],"duration_str":"134\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (14) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"207\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027129\u0027","params":[],"duration_str":"126\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (129) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"230\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027128\u0027","params":[],"duration_str":"130\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (128) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"217\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002723\u0027","params":[],"duration_str":"145\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (23) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"209\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002722\u0027","params":[],"duration_str":"128\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (22) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"207\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002766\u0027","params":[],"duration_str":"128\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (66) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"212\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002765\u0027","params":[],"duration_str":"137\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (65) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"237\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00271\u0027","params":[],"duration_str":"129\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (1) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"214\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002762\u0027","params":[],"duration_str":"142\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (62) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"221\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002761\u0027","params":[],"duration_str":"144\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (61) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"223\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027101\u0027","params":[],"duration_str":"144\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (101) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"218\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002798\u0027","params":[],"duration_str":"155\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (98) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"217\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027123\u0027","params":[],"duration_str":"139\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (123) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"224\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027122\u0027","params":[],"duration_str":"141\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (122) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"236\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002760\u0027","params":[],"duration_str":"145\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (60) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"212\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002724\u0027","params":[],"duration_str":"139\u03bcs","memory_str":"15.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (24) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"226\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002794\u0027","params":[],"duration_str":"130\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (94) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"210\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002792\u0027","params":[],"duration_str":"125\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (92) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"212\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027127\u0027","params":[],"duration_str":"129\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (127) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"222\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027126\u0027","params":[],"duration_str":"127\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (126) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"210\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027119\u0027","params":[],"duration_str":"127\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (119) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"204\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027117\u0027","params":[],"duration_str":"130\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (117) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"204\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002719\u0027","params":[],"duration_str":"142\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (19) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"215\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002718\u0027","params":[],"duration_str":"125\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (18) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"222\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00275\u0027","params":[],"duration_str":"153\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (5) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"214\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00274\u0027","params":[],"duration_str":"145\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (4) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"238\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00272\u0027","params":[],"duration_str":"147\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (2) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"224\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002717\u0027","params":[],"duration_str":"145\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (17) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"216\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002716\u0027","params":[],"duration_str":"140\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (16) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"232\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002774\u0027","params":[],"duration_str":"150\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (74) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"219\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002771\u0027","params":[],"duration_str":"142\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (71) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"228\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002727\u0027","params":[],"duration_str":"132\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (27) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"207\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027131\u0027","params":[],"duration_str":"125\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (131) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"202\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002767\u0027","params":[],"duration_str":"132\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (67) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"215\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002763\u0027","params":[],"duration_str":"134\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (63) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"213\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027114\u0027","params":[],"duration_str":"127\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (114) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"210\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00276\u0027","params":[],"duration_str":"129\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (6) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"219\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00273\u0027","params":[],"duration_str":"126\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (3) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"201\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027120\u0027","params":[],"duration_str":"126\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (120) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"227\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027125\u0027","params":[],"duration_str":"150\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (125) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"236\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002768\u0027","params":[],"duration_str":"141\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (68) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"223\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027133\u0027","params":[],"duration_str":"158\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (133) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"243\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027118\u0027","params":[],"duration_str":"142\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (118) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"220\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002764\u0027","params":[],"duration_str":"133\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (64) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"224\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00277\u0027","params":[],"duration_str":"131\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (7) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"222\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002728\u0027","params":[],"duration_str":"127\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (28) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"206\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027121\u0027","params":[],"duration_str":"125\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (121) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"222\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002729\u0027","params":[],"duration_str":"140\u03bcs","memory_str":"12.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (29) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"213\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027124\u0027","params":[],"duration_str":"129\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (124) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"210\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00278\u0027","params":[],"duration_str":"126\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (8) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"204\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002730\u0027","params":[],"duration_str":"128\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (30) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"224\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u00279\u0027","params":[],"duration_str":"123\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (9) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"199\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027132\u0027","params":[],"duration_str":"129\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (132) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"212\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002732\u0027","params":[],"duration_str":"129\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (32) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"243\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002710\u0027","params":[],"duration_str":"147\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (10) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"215\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002733\u0027","params":[],"duration_str":"139\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (33) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"217\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002711\u0027","params":[],"duration_str":"133\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (11) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"225\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002734\u0027","params":[],"duration_str":"126\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (34) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"225\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002712\u0027","params":[],"duration_str":"143\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (12) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"249\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002713\u0027","params":[],"duration_str":"125\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (13) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"219\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002735\u0027","params":[],"duration_str":"129\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (35) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"228\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002746\u0027","params":[],"duration_str":"133\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (46) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"225\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002731\u0027","params":[],"duration_str":"139\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (31) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"215\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002737\u0027","params":[],"duration_str":"227\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (37) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"233\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002736\u0027","params":[],"duration_str":"140\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (36) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"303\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002738\u0027","params":[],"duration_str":"164\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (38) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"235\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002778\u0027","params":[],"duration_str":"142\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (78) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"241\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002739\u0027","params":[],"duration_str":"140\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (39) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"207\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002782\u0027","params":[],"duration_str":"135\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (82) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"212\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002740\u0027","params":[],"duration_str":"132\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (40) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"210\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002741\u0027","params":[],"duration_str":"136\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (41) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"211\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002742\u0027","params":[],"duration_str":"194\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (42) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"220\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002743\u0027","params":[],"duration_str":"135\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (43) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"253\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002744\u0027","params":[],"duration_str":"143\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (44) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"223\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002745\u0027","params":[],"duration_str":"133\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (45) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"214\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002747\u0027","params":[],"duration_str":"140\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (47) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"260\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002748\u0027","params":[],"duration_str":"130\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (48) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"224\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002749\u0027","params":[],"duration_str":"135\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (49) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"201\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002750\u0027","params":[],"duration_str":"123\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (50) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"205\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002751\u0027","params":[],"duration_str":"123\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (51) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"213\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002752\u0027","params":[],"duration_str":"123\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (52) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"203\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002753\u0027","params":[],"duration_str":"115\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (53) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"194\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002754\u0027","params":[],"duration_str":"114\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (54) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"203\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u002755\u0027","params":[],"duration_str":"137\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (55) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"206\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027115\u0027","params":[],"duration_str":"119\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (115) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"224\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_categories`\nWHERE `id` = \u0027116\u0027","params":[],"duration_str":"136\u03bcs","memory_str":"4.66KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (116) AND `reference_table`= \u0027kunena_categories\u0027","params":[],"duration_str":"219\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL COLUMNS FROM `ff583_kunena_topics`","params":[],"duration_str":"755\u03bcs","memory_str":"1.7KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_topics`\nWHERE `id` = \u002779\u0027","params":[],"duration_str":"222\u03bcs","memory_str":"194.81KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL COLUMNS FROM `ff583_kunena_messages`","params":[],"duration_str":"607\u03bcs","memory_str":"1.58KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT m.*,t.message\nFROM `ff583_kunena_messages` AS `m`\nINNER JOIN `ff583_kunena_messages_text` AS `t` ON `m`.`id` = `t`.`mesid`\nWHERE `m`.`id` = 78","params":[],"duration_str":"150\u03bcs","memory_str":"98.56KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (78) AND `reference_table`= \u0027kunena_messages\u0027","params":[],"duration_str":"238\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (78) AND `reference_table`= \u0027kunena_messages_text\u0027","params":[],"duration_str":"210\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT COUNT(*)\nFROM `ff583_kunena_messages` AS `a`\nWHERE `thread` = \u002779\u0027 AND `a`.`hold` IN (0)","params":[],"duration_str":"120\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.id\nFROM `ff583_kunena_messages` AS `a`\nWHERE `thread` = \u002779\u0027 AND `a`.`hold` IN (0)\nORDER BY a.`time` ASC LIMIT 6","params":[],"duration_str":"97\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (78) AND `reference_table`= \u0027kunena_messages\u0027","params":[],"duration_str":"211\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_thankyou`\nWHERE `postid` IN (78)","params":[],"duration_str":"83\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT u.name, u.username, u.email, u.block AS blocked, u.registerDate, u.lastvisitDate, ku.*, u.id AS userid\nFROM `ff583_users` AS `u`\nLEFT JOIN `ff583_kunena_users` AS `ku` ON `u`.`id` = `ku`.`userid`\nWHERE `u`.`id` IN (3477)","params":[],"duration_str":"157\u03bcs","memory_str":"4.64KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_attachments`\nWHERE `mesid` IN (78)","params":[],"duration_str":"90\u03bcs","memory_str":"1.45KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_user_topics`\nWHERE \n(`user_id` = \u00270\u0027) AND \n(`topic_id` IN (79))","params":[],"duration_str":"79\u03bcs","memory_str":"1.27KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL COLUMNS FROM `ff583_kunena_user_topics`","params":[],"duration_str":"454\u03bcs","memory_str":"1.42KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT u.name, u.username, u.email, u.block as blocked, u.registerDate, u.lastvisitDate, ku.*\nFROM `ff583_users` AS `u`\nLEFT JOIN `ff583_kunena_users` AS `ku` ON `u`.`id` = `ku`.`userid`\nWHERE `u`.`id` = \u00273477\u0027","params":[],"duration_str":"152\u03bcs","memory_str":"4.61KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT `code`,`location`\nFROM `ff583_kunena_smileys`","params":[],"duration_str":"125\u03bcs","memory_str":"960B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"UPDATE `ff583_kunena_topics`\nSET `hits` = (`hits` + 1)\nWHERE `id` = \u002779\u0027","params":[],"duration_str":"918\u03bcs","memory_str":"48B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:133","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_ranks`","params":[],"duration_str":"96\u03bcs","memory_str":"864B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL COLUMNS FROM `ff583_users`","params":[],"duration_str":"586\u03bcs","memory_str":"1.58KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *, u.id\n FROM ff583_users AS u\n LEFT JOIN ff583_comprofiler AS c ON c.id = u.id WHERE u.id IN (0,3477)","params":[],"duration_str":"206\u03bcs","memory_str":"5.42KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT c.*, u.*\n FROM ff583_users AS u\n LEFT JOIN ff583_comprofiler AS c ON c.id = u.id\n WHERE u.`id` = 3477","params":[],"duration_str":"202\u03bcs","memory_str":"5.39KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT u.*, c.*\n FROM ff583_comprofiler AS c\n LEFT JOIN ff583_users AS u ON c.id = u.id\n WHERE u.`id` = 3477","params":[],"duration_str":"139\u03bcs","memory_str":"5.39KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_attachments`\nWHERE `mesid` IN (78)","params":[],"duration_str":"117\u03bcs","memory_str":"1.45KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_attachments`\nWHERE `mesid` IN (78)","params":[],"duration_str":"87\u03bcs","memory_str":"1.45KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT `id`\n FROM `ff583_menu`\n WHERE ( `link` LIKE \u0027index.php?option=com_comprofiler\u0026view=registers%\u0027 OR `link` LIKE \u0027index.php?option=com_comprofiler\u0026task=registers%\u0027 )\n AND `published` = 1\n AND `access` IN (1, 5, 8) \n AND `language` IN ( \u0027en-GB\u0027, \u0027*\u0027, \u0027\u0027 )\n AND `client_id` = 0","params":[],"duration_str":"1000\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (143) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"280\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT `id`\n FROM `ff583_menu`\n WHERE ( `link` LIKE \u0027index.php?option=com_comprofiler\u0026view=lostpassword%\u0027 OR `link` LIKE \u0027index.php?option=com_comprofiler\u0026task=lostpassword%\u0027 )\n AND `published` = 1\n AND `access` IN (1, 5, 8) \n AND `language` IN ( \u0027en-GB\u0027, \u0027*\u0027, \u0027\u0027 )\n AND `client_id` = 0","params":[],"duration_str":"843\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (146) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"263\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (146) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"225\u03bcs","memory_str":"96B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT *\nFROM `ff583_kunena_announcement`\nWHERE `published` = 1 AND (`publish_up` = \u00271000-01-01 00:00:00\u0027 OR `publish_up` \u003C= \u00272026-02-14 07:06:00\u0027) AND (`publish_down` =\u00271000-01-01 00:00:00\u0027 OR `publish_down` \u003E= \u00272026-02-14 07:06:00\u0027)\nORDER BY `id` DESC LIMIT 1","params":[],"duration_str":"125\u03bcs","memory_str":"1.42KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT `language`,`id`\nFROM `ff583_menu`\nWHERE `home` = \u00271\u0027 AND `published` = 1 AND `client_id` = 0","params":[],"duration_str":"576\u03bcs","memory_str":"592B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (101) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"234\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT folder.*\nFROM `ff583_eventgallery_folder` AS folder\nLEFT JOIN `ff583_eventgallery_file` AS file ON folder.folder = file.folder and file.published=1 and file.ismainimage=0\nWHERE file.file IS NULL AND (folder.foldertypeid=1 OR folder.foldertypeid=2 OR folder.foldertypeid=4 OR folder.foldertypeid=5)","params":[],"duration_str":"240\u03bcs","memory_str":"4.55KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_config","params":[],"duration_str":"810\u03bcs","memory_str":"136.63KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SET sql_mode=(SELECT REPLACE(REPLACE(@@sql_mode,\u0027ONLY_FULL_GROUP_BY\u0027,\u0027\u0027), \u0027STRICT_TRANS_TABLES\u0027, \u0027\u0027));","params":[],"duration_str":"39\u03bcs","memory_str":"0B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:133","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT cart.cart_id FROM ff583_hikashop_cart AS cart WHERE (cart.cart_type = \u0027cart\u0027) AND (cart.session_id = \u0027d7a408d48f312f3c4aacc681d3b8f475\u0027) ORDER BY cart.cart_current DESC, cart.cart_modified DESC","params":[],"duration_str":"165\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.*,b.* FROM ff583_hikashop_category AS a LEFT JOIN ff583_hikashop_file AS b ON a.category_id = b.file_ref_id AND b.file_type = \u0027category\u0027 WHERE a.category_id = 223 LIMIT 1","params":[],"duration_str":"346\u03bcs","memory_str":"4.59KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (223) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"313\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (766) AND `reference_table`= \u0027hikashop_file\u0027","params":[],"duration_str":"204\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.id FROM ff583_menu AS a INNER JOIN `ff583_menu_types` as b on a.menutype = b.menutype WHERE a.type=\u0027component\u0027 AND a.published=1 AND b.title IS NOT NULL AND a.access IN (1,5,8) AND a.client_id=0 AND a.link LIKE \u0027index.php?option=com_hikashop\u0026view=checkout\u0026layout=%\u0027 AND a.language IN (\u0027*\u0027, \u0027\u0027, \u0027en-GB\u0027)","params":[],"duration_str":"914\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (6144) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"282\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.id FROM ff583_menu AS a INNER JOIN `ff583_menu_types` as b on a.menutype = b.menutype WHERE a.type=\u0027component\u0027 AND a.published=1 AND b.title IS NOT NULL AND a.access IN (1,5,8) AND a.client_id=0 AND a.link LIKE \u0027index.php?option=com_hikashop\u0026view=%\u0027 AND a.language IN (\u0027*\u0027, \u0027\u0027, \u0027en-GB\u0027)","params":[],"duration_str":"809\u03bcs","memory_str":"616B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (4985,5872,6144,6145,6146,6823) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"605\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT DISTINCT b.* FROM ff583_hikashop_product_category AS a LEFT JOIN ff583_hikashop_product AS b ON a.product_id=b.product_id WHERE (b.product_published = 1) AND (b.product_type = \u0027main\u0027) AND (a.category_id IN (223)) AND (b.product_quantity!=0) ORDER BY a.ordering ASC, b.product_id ASC LIMIT 3","params":[],"duration_str":"453\u03bcs","memory_str":"5.53KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (279) AND `reference_table`= \u0027hikashop_product\u0027","params":[],"duration_str":"271\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_file WHERE file_ref_id IN (279) AND file_type IN (\u0027product\u0027,\u0027file\u0027) ORDER BY file_ref_id ASC, file_ordering ASC, file_id ASC","params":[],"duration_str":"1.22ms","memory_str":"1.44KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (768) AND `reference_table`= \u0027hikashop_file\u0027","params":[],"duration_str":"202\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT variant_product_id FROM ff583_hikashop_variant WHERE variant_product_id IN (279)","params":[],"duration_str":"79\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT product_id FROM ff583_hikashop_product_related WHERE product_related_type = \u0027options\u0027 AND product_id IN (279)","params":[],"duration_str":"104\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT product_parent_id, product_id, product_tax_id FROM ff583_hikashop_product WHERE product_parent_id IN (\u0027279\u0027) AND product_published = 1 AND product_type = \u0027variant\u0027 AND product_sale_start \u003C 1771052761 AND (product_sale_end \u003E 1771052761 OR product_sale_end = 0)","params":[],"duration_str":"158\u03bcs","memory_str":"640B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_discount WHERE discount_type=\u0027discount\u0027 AND discount_published=1 AND (discount_quota \u003E discount_used_times OR discount_quota = 0) AND discount_start \u003C 1771052761 AND (discount_end \u003E 1771052761 OR discount_end = 0) AND ( (discount_product_id IN (\u0027\u0027,\u00270\u0027,\u0027279\u0027)) OR (discount_product_id LIKE \u0027%,279,%\u0027) ) AND (discount_flat_amount != 0 OR discount_percent_amount != 0) AND (discount_flat_amount = 0 OR discount_currency_id =38) AND (discount_user_id = \u0027\u0027 OR discount_user_id LIKE \u0027%,0,%\u0027)","params":[],"duration_str":"166\u03bcs","memory_str":"19.08KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT currency_id FROM ff583_hikashop_currency WHERE currency_published=1 OR currency_id = 38","params":[],"duration_str":"356\u03bcs","memory_str":"568B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.*, CASE WHEN price_site_id = 0 OR price_site_id = \u0027[unselected]\u0027 THEN \u0027\u0027 ELSE price_site_id END AS price_site_id FROM ff583_hikashop_price AS a WHERE a.price_product_id IN (279) AND a.price_currency_id IN (1,2,38) AND a.price_start_date \u003C 1771052761 AND (a.price_end_date \u003C 1 OR a.price_end_date \u003E 1771052761) AND (a.price_access = \u0027all\u0027 OR a.price_access LIKE \u0027%,9,%\u0027 OR ISNULL(a.price_access)) AND (a.price_users = \u0027\u0027 OR a.price_users LIKE \u0027%,0,%\u0027) ORDER BY a.price_site_id ASC, a.price_value DESC","params":[],"duration_str":"140\u03bcs","memory_str":"1.47KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_currency WHERE currency_id IN (2)","params":[],"duration_str":"70\u03bcs","memory_str":"1.44KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT b.*,c.* FROM ff583_hikashop_category AS a LEFT JOIN ff583_hikashop_taxation AS b ON a.category_namekey=b.category_namekey LEFT JOIN ff583_hikashop_tax AS c ON b.tax_namekey=c.tax_namekey WHERE a.category_id = 11 AND b.taxation_published=1 AND ( taxation_type = \u0027\u0027 OR (taxation_type = \u0027individual\u0027 OR taxation_type LIKE \u0027%individual%\u0027) ) AND b.taxation_date_start \u003C= 1771052761 AND (b.taxation_date_end = 0 OR b.taxation_date_end \u003E 1771052761) ORDER BY b.taxation_id ASC","params":[],"duration_str":"174\u03bcs","memory_str":"2.39KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_zone WHERE zone_id = 44","params":[],"duration_str":"122\u03bcs","memory_str":"1.28KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT b.* FROM ff583_hikashop_zone_link AS a LEFT JOIN ff583_hikashop_zone AS b ON a.zone_parent_namekey=b.zone_namekey WHERE a.zone_child_namekey IN (\u0027country_China_44\u0027) AND a.zone_parent_namekey NOT IN (\u0027country_China_44\u0027) AND (b.zone_type IN(\u0027state\u0027,\u0027country\u0027) OR ( b.zone_type=\u0027tax\u0027 AND b.zone_namekey IN (\u0027country_United_States_of_America_223\u0027,\u0027country_China_44\u0027) ))","params":[],"duration_str":"7.37ms","memory_str":"1.28KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT b.* FROM ff583_hikashop_zone_link AS a LEFT JOIN ff583_hikashop_zone AS b ON a.zone_parent_namekey=b.zone_namekey WHERE a.zone_child_namekey IN (\u0027country_allcountry_882811258\u0027) AND a.zone_parent_namekey NOT IN (\u0027country_China_44\u0027,\u0027country_allcountry_882811258\u0027) AND (b.zone_type IN(\u0027state\u0027,\u0027country\u0027) OR ( b.zone_type=\u0027tax\u0027 AND b.zone_namekey IN (\u0027country_United_States_of_America_223\u0027,\u0027country_China_44\u0027) ))","params":[],"duration_str":"7.51ms","memory_str":"1.27KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_currency WHERE currency_id IN (2,38)","params":[],"duration_str":"111\u03bcs","memory_str":"1.45KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT c.*, pc.* FROM ff583_hikashop_category AS c LEFT JOIN ff583_hikashop_product_category AS pc ON c.category_id = pc.category_id WHERE pc.product_id IN (279);","params":[],"duration_str":"150\u03bcs","memory_str":"3KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (223) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"302\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT hk_parent.category_id, hk_parent.category_parent_id FROM ff583_hikashop_category AS hk_parent WHERE hk_parent.category_id IN (223) ORDER BY hk_parent.category_left","params":[],"duration_str":"72\u03bcs","memory_str":"592B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (223) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"231\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT hk_parent.category_id, hk_parent.category_parent_id, hk_parent.category_parent_id FROM ff583_hikashop_category AS hk_parent WHERE hk_parent.category_id IN (2) ORDER BY hk_parent.category_left","params":[],"duration_str":"62\u03bcs","memory_str":"656B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (2) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"234\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT hk_parent.category_id, hk_parent.category_parent_id, hk_parent.category_parent_id, hk_parent.category_parent_id FROM ff583_hikashop_category AS hk_parent WHERE hk_parent.category_id IN (1) ORDER BY hk_parent.category_left","params":[],"duration_str":"60\u03bcs","memory_str":"704B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (1) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"225\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.* FROM ff583_hikashop_badge AS a WHERE a.badge_start \u003C= 1771052761 AND (a.badge_end \u003E= 1771052761 OR a.badge_end = 0) AND a.badge_published = 1 AND (a.badge_quantity = \u0027\u0027 OR a.badge_quantity = -1) AND (a.badge_new_period = 0 OR a.badge_new_period \u003E= 15449766) AND (badge_discount_id = \u00270\u0027 OR badge_discount_id = \u0027\u0027) AND ((badge_category_childs = 0 AND (badge_category_id = \u00270\u0027 OR badge_category_id = \u0027\u0027 OR badge_category_id = \u0027179\u0027 OR badge_category_id LIKE \u0027%,179,%\u0027 OR badge_category_id = \u0027223\u0027 OR badge_category_id LIKE \u0027%,223,%\u0027)) OR (badge_category_childs = 1 AND (badge_category_id=\u00270\u0027 OR badge_category_id=\u0027\u0027 OR badge_category_id = \u00271\u0027 OR badge_category_id LIKE \u0027%,1,%\u0027 OR badge_category_id = \u00272\u0027 OR badge_category_id LIKE \u0027%,2,%\u0027 OR badge_category_id = \u0027223\u0027 OR badge_category_id LIKE \u0027%,223,%\u0027))) ORDER BY a.badge_ordering ASC,a.badge_id ASC","params":[],"duration_str":"204\u03bcs","memory_str":"2.56KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (5) AND `reference_table`= \u0027hikashop_badge\u0027","params":[],"duration_str":"212\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT COUNT( DISTINCT b.product_id ) FROM ff583_hikashop_product_category AS a LEFT JOIN ff583_hikashop_product AS b ON a.product_id=b.product_id WHERE (b.product_published = 1) AND (b.product_type = \u0027main\u0027) AND (a.category_id IN (223)) AND (b.product_quantity!=0) ORDER BY a.ordering ASC, b.product_id ASC","params":[],"duration_str":"239\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_characteristic WHERE characteristic_values_on_listing \u003E 0 ORDER BY characteristic_ordering ASC;","params":[],"duration_str":"363\u03bcs","memory_str":"1.27KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.id, a.link, a.params FROM ff583_menu AS a INNER JOIN `ff583_menu_types` AS b ON a.menutype = b.menutype WHERE a.type=\u0027component\u0027 AND a.published=1 AND b.title IS NOT NULL AND a.access IN (1,5,8) AND a.client_id=0 AND (a.link=\u0027index.php?option=com_hikashop\u0026view=category\u0026layout=listing\u0027 OR a.link=\u0027index.php?option=com_hikashop\u0026view=product\u0026layout=listing\u0027) AND a.language IN (\u0027*\u0027, \u0027\u0027, \u0027en-GB\u0027)","params":[],"duration_str":"956\u03bcs","memory_str":"672B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (4985,6823) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"347\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT c.category_id FROM ff583_hikashop_product_category AS pc INNER JOIN ff583_hikashop_category AS c ON c.category_id = pc.category_id AND c.category_published = 1 WHERE pc.product_id = 279 ORDER BY pc.product_category_id ASC","params":[],"duration_str":"112\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (223) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"243\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.id FROM ff583_menu AS a INNER JOIN `ff583_menu_types` as b on a.menutype = b.menutype WHERE a.type=\u0027component\u0027 AND a.published=1 AND b.title IS NOT NULL AND a.access IN (1,5,8) AND a.client_id=0 AND a.link LIKE \u0027index.php?option=com_hikashop\u0026view=category\u0026layout=%\u0027 AND a.language IN (\u0027*\u0027, \u0027\u0027, \u0027en-GB\u0027)","params":[],"duration_str":"774\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (6823) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"258\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.id FROM ff583_menu AS a INNER JOIN `ff583_menu_types` as b on a.menutype = b.menutype WHERE a.type=\u0027component\u0027 AND a.published=1 AND b.title IS NOT NULL AND a.access IN (1,5,8) AND a.client_id=0 AND a.link LIKE \u0027index.php?option=com_hikashop\u0026view=product\u0026layout=%\u0027 AND a.language IN (\u0027*\u0027, \u0027\u0027, \u0027en-GB\u0027)","params":[],"duration_str":"761\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (4985) AND `reference_table`= \u0027menu\u0027","params":[],"duration_str":"256\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT product_alias\nFROM ff583_hikashop_product\nWHERE product_id = 279","params":[],"duration_str":"78\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT c.category_id FROM ff583_hikashop_product_category AS pc INNER JOIN ff583_hikashop_category AS c ON c.category_id = pc.category_id AND c.category_published = 1 WHERE pc.product_id = 279 ORDER BY pc.product_category_id ASC","params":[],"duration_str":"100\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (223) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"241\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_currency WHERE currency_id IN (38)","params":[],"duration_str":"101\u03bcs","memory_str":"1.44KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_vote WHERE (vote_type = \u0027product\u0027) AND (vote_rating != 0) AND (vote_ref_id = 279) AND (vote_ip = \u0027216.73.216.9\u0027) AND (vote_user_id IN ( \u0027\u0027 , \u00270\u0027, \u0027216.73.216.9\u0027))","params":[],"duration_str":"97\u03bcs","memory_str":"1.48KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT cart.cart_id FROM ff583_hikashop_cart AS cart WHERE (cart.cart_type = \u0027cart\u0027) AND (cart.session_id = \u0027d7a408d48f312f3c4aacc681d3b8f475\u0027) ORDER BY cart.cart_current DESC, cart.cart_modified DESC","params":[],"duration_str":"114\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT cart.cart_id FROM ff583_hikashop_cart AS cart WHERE (cart.cart_type = \u0027cart\u0027) AND (cart.session_id = \u0027d7a408d48f312f3c4aacc681d3b8f475\u0027) ORDER BY cart.cart_current DESC, cart.cart_modified DESC","params":[],"duration_str":"91\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT cart.cart_id FROM ff583_hikashop_cart AS cart WHERE (cart.cart_type = \u0027cart\u0027) AND (cart.session_id = \u0027d7a408d48f312f3c4aacc681d3b8f475\u0027) ORDER BY cart.cart_current DESC, cart.cart_modified DESC","params":[],"duration_str":"106\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.*,b.* FROM ff583_hikashop_category AS a LEFT JOIN ff583_hikashop_file AS b ON a.category_id = b.file_ref_id AND b.file_type = \u0027category\u0027 WHERE a.category_id = 215 LIMIT 1","params":[],"duration_str":"303\u03bcs","memory_str":"4.59KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (215) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"251\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (738) AND `reference_table`= \u0027hikashop_file\u0027","params":[],"duration_str":"166\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT DISTINCT b.* FROM ff583_hikashop_product_category AS a LEFT JOIN ff583_hikashop_product AS b ON a.product_id=b.product_id WHERE (b.product_published = 1) AND (b.product_type = \u0027main\u0027) AND (a.category_id IN (215)) AND (b.product_quantity!=0) ORDER BY a.ordering ASC, b.product_id ASC LIMIT 3","params":[],"duration_str":"408\u03bcs","memory_str":"5.53KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (167) AND `reference_table`= \u0027hikashop_product\u0027","params":[],"duration_str":"226\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_file WHERE file_ref_id IN (167) AND file_type IN (\u0027product\u0027,\u0027file\u0027) ORDER BY file_ref_id ASC, file_ordering ASC, file_id ASC","params":[],"duration_str":"1.2ms","memory_str":"1.44KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (326) AND `reference_table`= \u0027hikashop_file\u0027","params":[],"duration_str":"201\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT variant_product_id FROM ff583_hikashop_variant WHERE variant_product_id IN (167)","params":[],"duration_str":"65\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT product_id FROM ff583_hikashop_product_related WHERE product_related_type = \u0027options\u0027 AND product_id IN (167)","params":[],"duration_str":"77\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT product_parent_id, product_id, product_tax_id FROM ff583_hikashop_product WHERE product_parent_id IN (\u0027167\u0027) AND product_published = 1 AND product_type = \u0027variant\u0027 AND product_sale_start \u003C 1771052761 AND (product_sale_end \u003E 1771052761 OR product_sale_end = 0)","params":[],"duration_str":"151\u03bcs","memory_str":"640B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_discount WHERE discount_type=\u0027discount\u0027 AND discount_published=1 AND (discount_quota \u003E discount_used_times OR discount_quota = 0) AND discount_start \u003C 1771052761 AND (discount_end \u003E 1771052761 OR discount_end = 0) AND ( (discount_product_id IN (\u0027\u0027,\u00270\u0027,\u0027167\u0027)) OR (discount_product_id LIKE \u0027%,167,%\u0027) ) AND (discount_flat_amount != 0 OR discount_percent_amount != 0) AND (discount_flat_amount = 0 OR discount_currency_id =38) AND (discount_user_id = \u0027\u0027 OR discount_user_id LIKE \u0027%,0,%\u0027)","params":[],"duration_str":"164\u03bcs","memory_str":"3.08KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.*, CASE WHEN price_site_id = 0 OR price_site_id = \u0027[unselected]\u0027 THEN \u0027\u0027 ELSE price_site_id END AS price_site_id FROM ff583_hikashop_price AS a WHERE a.price_product_id IN (167) AND a.price_currency_id IN (1,2,38) AND a.price_start_date \u003C 1771052761 AND (a.price_end_date \u003C 1 OR a.price_end_date \u003E 1771052761) AND (a.price_access = \u0027all\u0027 OR a.price_access LIKE \u0027%,9,%\u0027 OR ISNULL(a.price_access)) AND (a.price_users = \u0027\u0027 OR a.price_users LIKE \u0027%,0,%\u0027) ORDER BY a.price_site_id ASC, a.price_value DESC","params":[],"duration_str":"147\u03bcs","memory_str":"1.47KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_currency WHERE currency_id IN (2,38)","params":[],"duration_str":"94\u03bcs","memory_str":"1.45KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT c.*, pc.* FROM ff583_hikashop_category AS c LEFT JOIN ff583_hikashop_product_category AS pc ON c.category_id = pc.category_id WHERE pc.product_id IN (167);","params":[],"duration_str":"132\u03bcs","memory_str":"3KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (215) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"249\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT hk_parent.category_id, hk_parent.category_parent_id FROM ff583_hikashop_category AS hk_parent WHERE hk_parent.category_id IN (215) ORDER BY hk_parent.category_left","params":[],"duration_str":"78\u03bcs","memory_str":"592B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (215) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"238\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT a.* FROM ff583_hikashop_badge AS a WHERE a.badge_start \u003C= 1771052761 AND (a.badge_end \u003E= 1771052761 OR a.badge_end = 0) AND a.badge_published = 1 AND (a.badge_quantity = \u0027\u0027 OR a.badge_quantity = -1) AND (a.badge_new_period = 0 OR a.badge_new_period \u003E= 60467805) AND (badge_discount_id = \u00270\u0027 OR badge_discount_id = \u0027\u0027) AND ((badge_category_childs = 0 AND (badge_category_id = \u00270\u0027 OR badge_category_id = \u0027\u0027 OR badge_category_id = \u0027179\u0027 OR badge_category_id LIKE \u0027%,179,%\u0027 OR badge_category_id = \u0027215\u0027 OR badge_category_id LIKE \u0027%,215,%\u0027)) OR (badge_category_childs = 1 AND (badge_category_id=\u00270\u0027 OR badge_category_id=\u0027\u0027 OR badge_category_id = \u00271\u0027 OR badge_category_id LIKE \u0027%,1,%\u0027 OR badge_category_id = \u00272\u0027 OR badge_category_id LIKE \u0027%,2,%\u0027 OR badge_category_id = \u0027215\u0027 OR badge_category_id LIKE \u0027%,215,%\u0027))) ORDER BY a.badge_ordering ASC,a.badge_id ASC","params":[],"duration_str":"184\u03bcs","memory_str":"2.56KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (5) AND `reference_table`= \u0027hikashop_badge\u0027","params":[],"duration_str":"226\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT COUNT( DISTINCT b.product_id ) FROM ff583_hikashop_product_category AS a LEFT JOIN ff583_hikashop_product AS b ON a.product_id=b.product_id WHERE (b.product_published = 1) AND (b.product_type = \u0027main\u0027) AND (a.category_id IN (215)) AND (b.product_quantity!=0) ORDER BY a.ordering ASC, b.product_id ASC","params":[],"duration_str":"202\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_characteristic WHERE characteristic_values_on_listing \u003E 0 ORDER BY characteristic_ordering ASC;","params":[],"duration_str":"383\u03bcs","memory_str":"1.27KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT c.category_id FROM ff583_hikashop_product_category AS pc INNER JOIN ff583_hikashop_category AS c ON c.category_id = pc.category_id AND c.category_published = 1 WHERE pc.product_id = 167 ORDER BY pc.product_category_id ASC","params":[],"duration_str":"108\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (215) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"243\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT product_alias\nFROM ff583_hikashop_product\nWHERE product_id = 167","params":[],"duration_str":"70\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT c.category_id FROM ff583_hikashop_product_category AS pc INNER JOIN ff583_hikashop_category AS c ON c.category_id = pc.category_id AND c.category_published = 1 WHERE pc.product_id = 167 ORDER BY pc.product_category_id ASC","params":[],"duration_str":"108\u03bcs","memory_str":"536B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT reference_field, value, reference_id, original_value\nFROM `ff583_falang_content`\nWHERE `language_id`=1 AND `published`= 1 AND `reference_id`IN (215) AND `reference_table`= \u0027hikashop_category\u0027","params":[],"duration_str":"248\u03bcs","memory_str":"688B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:325","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT * FROM ff583_hikashop_vote WHERE (vote_type = \u0027product\u0027) AND (vote_rating != 0) AND (vote_ref_id = 167) AND (vote_ip = \u0027216.73.216.9\u0027) AND (vote_user_id IN ( \u0027\u0027 , \u00270\u0027, \u0027216.73.216.9\u0027))","params":[],"duration_str":"116\u03bcs","memory_str":"1.48KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT cart.cart_id FROM ff583_hikashop_cart AS cart WHERE (cart.cart_type = \u0027cart\u0027) AND (cart.session_id = \u0027d7a408d48f312f3c4aacc681d3b8f475\u0027) ORDER BY cart.cart_current DESC, cart.cart_modified DESC","params":[],"duration_str":"106\u03bcs","memory_str":"520B","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SELECT SUM(CASE WHEN `a`.`next_execution` \u003C= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count\nFROM `ff583_scheduler_tasks` AS `a`\nWHERE `a`.`state` = 1","params":{":now":{"value":"2026-02-14 07:06:01","dataType":"string","length":0,"driverOptions":[]}},"duration_str":"178\u03bcs","memory_str":"1.37KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]},{"sql":"SHOW FULL TABLES WHERE table_type=\u0022BASE TABLE\u0022","params":[],"duration_str":"3.62ms","memory_str":"28.56KB","caller":"\/var\/www\/html\/plugins\/system\/falangdriver\/falang_database.php:330","callstack":[],"explain":[],"explain_col":[],"profile":[]}],"nb_statements":323,"accumulated_duration_str":"98.57ms","memory_usage_str":"1.21MB","xdebug_link":"","root_path":"\/var\/www\/html"},"count":323},"log":{"count":0,"messages":[]}}, "X84ff4509a759a1c14189e651210039de"); </script> </body> </html> <br /> <b>Deprecated</b>: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in <b>/var/www/html/plugins/system/falangdriver/falangdriver.php</b> on line <b>100</b><br /> <br /> <b>Deprecated</b>: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in <b>/var/www/html/plugins/system/falangdriver/falangdriver.php</b> on line <b>100</b><br /> <!-- mysqli object is already closed (500 Whoops, looks like something went wrong.) --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="robots" content="noindex,nofollow" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <title>mysqli object is already closed (500 Whoops, looks like something went wrong.)

mysqli object is already closed

Exception

Error

  1. */
  2. public function disconnect()
  3. {
  4. // Close the connection.
  5. if (\is_callable([$this->connection, 'close'])) {
  6. $this->connection->close();
  7. }
  8. parent::disconnect();
  9. }
  1. */
  2. public function disconnect()
  3. {
  4. // Close the connection.
  5. if (\is_callable([$this->connection, 'close'])) {
  6. $this->connection->close();
  7. }
  8. parent::disconnect();
  9. }
  1. *
  2. * @since 2.0.0
  3. */
  4. public function __destruct()
  5. {
  6. $this->disconnect();
  7. }
  8. /**
  9. * Alter database's character set.
  10. *
DatabaseDriver->__destruct()

Stack Trace

Error
Error:
mysqli object is already closed

  at /var/www/html/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:318
  at mysqli->close()
     (/var/www/html/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:318)
  at Joomla\Database\Mysqli\MysqliDriver->disconnect()
     (/var/www/html/libraries/vendor/joomla/database/src/DatabaseDriver.php:496)
  at Joomla\Database\DatabaseDriver->__destruct()                

Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /var/www/html/plugins/system/falangdriver/falangdriver.php on line 100

Deprecated: Method ReflectionProperty::setAccessible() is deprecated since 8.5, as it has no effect since PHP 8.1 in /var/www/html/plugins/system/falangdriver/falangdriver.php on line 100