2021-05-26

  Canvas2D实现对图片进行网格变换

  学习知识的目的总归是为了运用到工作和生活中去,为了不让这个过程太枯燥,试着利用目前复习的线代基础知识,做一个小demo。思考良久,决定实现一下Spine、live2D、龙骨这些工具的网格变换功能。开干!

  原理

  ①把图片水平垂直分成m×n份,每份沿对角线划分出两个三角形;

  ②移动图片四个顶点,对移动后的图像再进行一遍①操作;

  ③遍历每个三角形,通过三角形的变化计算出仿射变换矩阵,应用到原图,并裁剪出变化后的三角形区域;

  这里再稍微补一下数学知识,仿射变换是指对坐标系进行一次线性变换(缩放、旋转、反射、错切)+一次平移

  二维坐标系内的线性变换可以通过把坐标(行向量)左乘一个2×2的矩阵来实现, 如:

  

 

  注:A左乘B的结果为AB,右乘为BA

  但是平移操作通常用向量加法表示,如下:

  

 

  为了用一个矩阵表示仿射变换(即同时表示线性映射和平移),于是引入了齐次坐标,把二维矩阵A和平移向量并入一个三维增广矩阵。用数学来解释该过程的话:

  一个对向量

  

{\vec  {x}}

 

  平移

  

{\vec  {b}}

 

  ,与旋转放大缩小

  

A

 

  的仿射映射为

  

{\vec  {y}}=A{\vec  {x}}+{\vec  {b}}

 

  上式在齐次坐标系中,等价于下面的式子

  

{\begin{bmatrix}{\vec  {y}}\\1\end{bmatrix}}={\begin{bmatrix}A&{\vec  {b}}\ \\0,\ldots ,0&1\end{bmatrix}}{\begin{bmatrix}{\vec  {x}}\\1\end{bmatrix}}

 

  到本例中

  

 

  注:欧式空间的二维点(x,y)和齐次坐标系(X,Y,ω) 的转换是x=X/ω ; y=Y/ω。如:在欧式坐标中的一个二维点 (2,2) 可以在齐次坐标中表示为 (2,2,1),如果点逐渐移动向无穷远处,齐次坐标为 (2,2,0)

  根据es标准的规定,void ctx.transform(a, b, c, d, e, f) 转化为矩阵形式为

  

 

  不难发现,canvas中的transform使用的是初等列变换,所以需要使用列向量右乘变换矩阵。即:

  

 

  如果把仿射矩阵分解,在线性变换的时候就引入齐次坐标,再右乘平移矩阵,可以得到矩阵 a,b,c,d,e,f 中每个字母代表的意义。这里直接给出结论,有兴趣的同学可以试着去推导一下。仿射矩阵有三个影响因素:旋转中心(x , y)、缩放因子(scale)、旋转角度(angle),可以表示为:

  

 

  其中α=scale⋅cos(angle) , β=scale⋅sin(angle)

  在这个例子中,由于每个三角的仿射变换不确定很难直接找到这个矩阵,所以使用3个点在原图和变换后图像的位置,计算出仿射矩阵。

  假设有变化前的三点(x1,y1) (x2,y2) (x3,y3)和变化后的三点(x1',y1') (x2',y2') (x3',y3'),仿射矩阵T,则有

  

 

  可得

  

 

  至此,前面仅仅三章学的线代知识就全部用上啦。

  行列式的求值、计算代数余子式,矩阵求逆、相乘运算都已经在上几篇文章封装好了。代码中使用的核心API是

  ① CanvasRenderingContext2D.transform(),用于对图像进行仿射变换;

  ② CanvasRenderingContext2D.clip(),用于裁剪仿射后的图像

  除去数学相关算法的代码大约200行,如下:

  let ctx = null

  let imgWidth = 0

  let imgHeight = 0

  const CANVAS_WIDTH = 800

  const CANVAS_HEIGHT = 800

  const arcRadius = 15

  let newPoints // 图片四个角的坐标

  let originPoints // 图片四个角的原始坐标

  const splitH = 10 // 图片分割成的行数

  const splitV = 10 // 图片分割成的列数

  let splitPoints = [] // 被分割出来的点的集合

  let originSplitPoints // 被分割出来的点的原始集合

  let imgUrl = 'https://kaysama.gitee.io/image-host/happy.jpg'

  const matches = location.search.substring(1).match(/(^|&)img=([^&]*)(&|$)/)

  if (matches) {

  imgUrl = decodeURI(matches[2])

  }

  let imgLeft, imgTop // 图片位置

  const img = new Image()

  img.src = imgUrl

  img.onload = function () {

  const canvas = document.getElementById('canvas')

  let pageWidth = window.innerWidth

  let pageHeight = window.innerHeight

  let canvasLeft = (pageWidth - CANVAS_WIDTH) / 2

  let canvasTop = (pageHeight - CANVAS_HEIGHT) / 2

  let targetPoint // 选中的圆

  let mouseX, mouseY // 鼠标位置

  ctx = canvas.getContext('2d')

  canvas.width = CANVAS_WIDTH

  canvas.height = CANVAS_HEIGHT

  // 图片最宽最高不能超过canvas宽高的一半

  imgWidth = img.width

  imgHeight = img.height

  const imgRatio = imgWidth / imgHeight

  if (imgWidth > CANVAS_WIDTH / 2) {

  imgWidth = CANVAS_WIDTH / 2

  imgHeight = imgWidth / imgRatio

  }

  if (imgHeight > CANVAS_HEIGHT / 2) {

  imgHeight = CANVAS_HEIGHT / 2

  imgWidth = imgHeight * imgRatio

  }

  img.width = imgWidth

  img.height = imgHeight

  imgLeft = (canvas.width - imgWidth) / 2

  imgTop = (canvas.height - imgHeight) / 2

  originPoints = [

  {

  x: imgLeft, y: imgTop

  },

  {

  x: imgLeft + imgWidth, y: imgTop

  },

  {

  x: imgLeft + imgWidth, y: imgTop + imgHeight

  },

  {

  x: imgLeft, y: imgTop + imgHeight

  },

  ]

  originSplitPoints = generatePoints(originPoints, splitH, splitV)

  newPoints = JSON.parse(JSON.stringify(originPoints))

  window.onresize = function () {

  pageWidth = document.documentElement.clientWidth

  pageHeight = document.documentElement.clientHeight

  canvasLeft = (pageWidth - CANVAS_WIDTH) / 2

  }

  let dragging = false // 拖动中

  document.body.onmousedown = function (e) {

  dragging = true

  mouseX = e.clientX - canvasLeft

  mouseY = e.clientY - canvasTop

  console.log(newPoints, e.clientY, mouseX, mouseY)

  for (let i = 0; i < 4; i++) {

  if (mouseX > newPoints[i].x - arcRadius && mouseX < newPoints[i].x + arcRadius && mouseY > newPoints[i].y - arcRadius && mouseY < newPoints[i].y + arcRadius) {

  targetPoint = newPoints[i]

  console.log('targetPoint:', targetPoint)

  break

  }

  }

  }

  document.body.onmousemove = function (e) {

  if (dragging && targetPoint) {

  if (e.pageX - canvasLeft < 0) {

  targetPoint.x = 0

  }

  else if (e.pageX - canvasLeft > CANVAS_WIDTH) {

  targetPoint.x = CANVAS_WIDTH

  }

  else {

  targetPoint.x = e.pageX - canvasLeft

  }

  if (e.pageY - canvasTop < 0) {

  targetPoint.y = 0

  }

  else if (e.pageY - canvasTop > CANVAS_HEIGHT) {

  targetPoint.y = CANVAS_HEIGHT

  }

  else {

  targetPoint.y = e.pageY - canvasTop

  }

  update()

  }

  }

  document.body.onmouseup = function (e) {

  dragging = false

  }

  update()

  }

  function update () {

  const newSplitPoints = generatePoints(newPoints, splitH, splitV)

  ctx.clearRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT)

  ctx.save()

  ctx.fillStyle = 'black'

  ctx.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT)

  for (let i = 0; i < newSplitPoints.length; i++) {

  if (i < newSplitPoints.length - splitH - 2 && (i + 1) % (splitH + 1) !== 0) {

  drawTriangleImage(

  originSplitPoints[i + 1], originSplitPoints[i + 1 + splitH + 1], originSplitPoints[i + splitH + 1],

  newSplitPoints[i + 1], newSplitPoints[i + 1 + splitH + 1], newSplitPoints[i + splitH + 1]

  ) // 先画下三角

  drawTriangleImage(

  originSplitPoints[i], originSplitPoints[i + 1], originSplitPoints[i + splitH + 1],

  newSplitPoints[i], newSplitPoints[i + 1], newSplitPoints[i + splitH + 1]

  ) // 再画上三角

  }

  // 四个角

  if (i === 0 || i === splitH || i === (splitH + 1) * splitV || i === (splitH + 1) * (splitV + 1) - 1) {

  drawArc(newSplitPoints[i])

  }

  }

  ctx.restore()

  }

  /**

  * 生成分割点

  * @param points 四边形四个点

  * @param splitH “水平”方向被等分数

  * @param splitV “竖直”方向被等分数

  */

  function generatePoints (points, splitH, splitV) {

  splitPoints = []

  let vLeft = {

  x: (points[3].x - points[0].x) / splitV,

  y: (points[3].y - points[0].y) / splitV

  }

  let vRight = {

  x: (points[2].x - points[1].x) / splitV,

  y: (points[2].y - points[1].y) / splitV

  }

  let x1, y1, x2, y2

  let i, j

  for (i = 0; i <= splitV; i++) {

  x1 = points[0].x + vLeft.x * i

  y1 = points[0].y + vLeft.y * i

  x2 = points[1].x + vRight.x * i

  y2 = points[1].y + vRight.y * i

  for (j = 0; j <= splitH; j++) {

  splitPoints.push({

  x: x1 + (x2 - x1) / splitH * j,

  y: y1 + (y2 - y1) / splitH * j

  })

  }

  }

  return splitPoints

  }

  /**

  * 画三角形图片

  */

  function drawTriangleImage (p1, p2, p3, newP1, newP2, newP3) {

  const matrixFrom = new Matrix(

  // 使用列向量

  [

  p1.x, p1.y, 1,

  p2.x, p2.y, 1,

  p3.x, p3.y, 1,

  ],

  3, // 3行(带齐次坐标 )

  3, // 3列

  'column'

  )

  const matrixTo = new Matrix(

  // 使用列向量

  [

  newP1.x, newP1.y, 1,

  newP2.x, newP2.y, 1,

  newP3.x, newP3.y, 1,

  ],

  3, // 3行(带齐次坐标 )

  3, // 3列

  'column'

  )

  const matrixTransform = matrixTo.multiply(matrixFrom.getInverseMatrix())

  const itemList = matrixTransform.itemList

  ctx.save()

  //根据变换后的坐标创建剪切区域

  ctx.beginPath()

  ctx.moveTo(newP1.x, newP1.y)

  ctx.lineTo(newP2.x, newP2.y)

  ctx.lineTo(newP3.x, newP3.y)

  ctx.closePath()

  ctx.lineWidth = 1

  ctx.strokeStyle = 'green'

  ctx.stroke()

  ctx.clip()

  //绘制图片

  ctx.transform(itemList[0][0], itemList[1][0], itemList[0][1], itemList[1][1], itemList[0][2], itemList[1][2])

  ctx.drawImage(img, imgLeft, imgTop, imgWidth, imgHeight)

  ctx.restore()

  }

  /**

  * 画四边形的四个点

  */

  function drawArc (point) {

  ctx.save()

  ctx.lineWidth = 2

  ctx.beginPath()

  ctx.arc(point.x, point.y, arcRadius, 0, 2 * Math.PI)

  ctx.strokeStyle = 'red'

  ctx.stroke()

  ctx.restore()

  }

  至此,所有功能已经实现,不过还没完。前面几篇博客也都提到过,一旦涉及到大量的像素级操作,在不严格要求兼容性的情况下,webGL始终是性能最优的方案事实上,webGL内置了一套显卡硬件加速过的矩阵算法,利用这些内置函数来做矩阵运算,性能可以达到数量级的提升,下一篇文章我会用webGL来重构这套实现。

Battery report COMPUTER NAME DESKTOP-RITPU28 SYSTEM PRODUCT NAME LENOVO 80VF BIOS 2JCN39WW 05/31/2017 OS BUILD 19041.1.amd64fre.vb_release.191206-1406 PLATFORM ROLE Mobile CONNECTED STANDBY Not supported REPORT TIME 2025-07-28 16:52:08 Installed batteries Information about each currently installed battery BATTERY 1 NAME BASE-BAT MANUFACTURER Simplo SERIAL NUMBER 123456789 CHEMISTRY LiP DESIGN CAPACITY -1 mWh FULL CHARGE CAPACITY -1 mWh CYCLE COUNT - Recent usage Power states over the last 3 days START TIME STATE SOURCE CAPACITY REMAINING 2025-07-25 16:56:38 Active Battery - - 16:56:38 Active AC - - 17:55:56 Active Battery - - 17:55:57 Suspended - - 17:56:32 Active Battery - - 17:56:32 Active AC - - 17:57:09 Active Battery - - 18:08:00 Suspended - - 18:55:29 Active AC - - 18:56:53 Suspended - - 22:21:27 Active Battery - - 2025-07-26 09:23:43 Suspended - - 09:24:18 Active Battery - - 09:53:00 Suspended - - 09:54:07 Active Battery - - 10:03:07 Suspended - - 13:03:46 Active AC - - 17:54:47 Suspended - - 17:55:22 Active AC - - 17:55:59 Active Battery - - 19:11:09 Suspended - - START TIME STATE SOURCE CAPACITY REMAINING 2025-07-27 09:23:59 Active Battery - - 11:21:23 Suspended - - 11:21:58 Active Battery - - 11:22:33 Suspended - - 11:22:11 Active AC - - 11:22:50 Suspended - - 17:04:24 Active Battery - - 17:04:59 Suspended - - 17:08:36 Active Battery - - 17:16:08 Suspended - - 2025-07-28 16:46:31 Active AC - - 16:47:09 Active Battery - - 16:47:13 Active AC - - 16:52:07 Report generated AC - - Batter y usage Battery drains over the last 3 days START TIME STATE DURATION ENERGY DRAINED 2025-07-25 16:56:38 Active 0:00:00 - - 17:55:56 Active 0:00:01 - - 17:56:32 Active 0:00:00 - - 17:57:09 Active 0:10:50 - - 22:21:27 Active 11:02:15 - - 09:24:18 Active 0:28:41 - - 09:54:07 Active 0:08:59 - - 17:55:59 Active 1:15:10 - - 2025-07-27 09:23:59 Active 1:57:23 - - 11:21:58 Active 0:00:35 - - 17:04:24 Active 0:00:35 - - 17:08:36 Active 0:07:32 - - 16:47:09 Active 0:00:04 - - Usage histor y History of system usage on AC and battery BATTERY DURATION AC DURATION PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2020-08-05 - 2020-08-11 0:19:14 - 0:28:55 - 2020-08-11 - 2020-08-26 5:07:03 - 2:32:02 - 2020-08-26 - 2020-09-19 - - - - 2020-09-19 - 2020-09-21 1:23:04 - 0:51:20 - 2020-09-21 - 2020-09-28 3:33:15 - 0:56:27 - 2020-09-28 - 2020-10-05 147:17:30 - 6:22:20 - 2020-10-05 - 2020-10-12 1:21:49 - 1:56:56 - 2020-10-12 - 2020-10-19 5:46:39 - 0:45:57 - 2020-10-19 - 2020-10-26 11:48:56 - 4:44:01 - 2020-10-26 - 2020-11-02 3:17:32 - 2:14:39 - 2020-11-02 - 2020-11-08 8:53:52 - 18:00:46 - 2020-11-08 - 2020-11-16 4:47:57 - 15:42:11 - 2020-11-16 - 2020-11-23 5:45:38 - 4:23:41 - 2020-11-23 - 2020-11-29 8:27:06 - 15:51:03 - 2020-11-29 - 2020-12-07 12:13:12 - 15:00:33 - 2020-12-07 - 2020-12-13 7:44:34 - 3:52:52 - 2020-12-13 - 2020-12-20 2:32:10 - 3:35:14 - 2020-12-20 - 2020-12-27 15:26:28 - 0:28:00 - 2020-12-27 - 2021-01-03 39:31:52 - 8:51:53 - 2021-01-03 - 2021-01-11 18:11:24 - 3:41:05 - 2021-01-11 - 2021-01-18 7:11:59 - 3:24:11 - 2021-01-18 - 2021-01-24 9:22:10 - 15:24:16 - 2021-01-24 - 2021-01-31 17:41:59 - 30:02:22 - 2021-01-31 - 2021-02-07 11:42:03 - 34:06:19 - 2021-02-07 - 2021-02-14 7:29:22 - 13:09:58 - 2021-02-14 - 2021-02-21 23:35:26 - 14:05:04 - 2021-02-21 - 2021-02-28 12:22:38 - 35:18:51 - 2021-02-28 - 2021-03-07 25:28:23 - 25:30:53 - 2021-03-07 - 2021-03-15 13:21:44 - 22:12:10 - 2021-03-15 - 2021-03-22 - - 16:16:43 - 2021-03-22 - 2021-03-29 9:06:31 - 11:22:34 - 2021-03-29 - 2021-04-05 7:45:29 - 8:13:37 - 2021-04-05 - 2021-04-12 2:33:00 - 2:28:00 - 2021-04-12 - 2021-04-18 21:27:01 - 41:51:03 - 2021-04-18 - 2021-04-25 45:25:15 - 16:25:56 - 2021-04-25 - 2021-05-02 7:25:57 - 31:38:50 - 2021-05-02 - 2021-05-09 10:02:40 - 15:10:18 - 2021-05-09 - 2021-05-16 11:34:44 - 37:03:44 - 2021-05-16 - 2021-05-23 66:09:36 - 31:12:43 - 2021-05-23 - 2021-05-30 23:37:39 - 77:04:45 - 2021-05-30 - 2021-06-06 29:11:51 - 37:13:49 - 2021-06-06 - 2021-06-13 19:22:00 - 31:02:08 - 2021-06-13 - 2021-06-20 9:25:51 - 29:14:07 - 2021-06-20 - 2021-06-27 10:53:44 - 44:56:59 - 2021-06-27 - 2021-07-04 8:01:30 - 38:03:58 - 2021-07-04 - 2021-07-11 11:28:54 - 26:23:04 - 2021-07-11 - 2021-07-19 9:59:11 - 97:20:38 - 2021-07-19 - 2021-07-26 0:38:17 - - - 2021-07-26 - 2021-08-02 1:08:48 - - - 2021-08-02 - 2021-08-09 1:16:42 - 2:48:49 - 2021-08-09 - 2021-08-23 14:27:29 - 1:34:55 - BATTERY DURATION AC DURATION PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2021-08-23 - 2021-08-30 2:23:23 - 0:42:29 - 2021-08-30 - 2021-09-06 5:07:19 - 0:54:07 - 2021-09-06 - 2021-09-12 14:18:23 - 20:52:40 - 2021-09-12 - 2021-09-19 49:18:13 - 15:58:52 - 2021-09-19 - 2021-09-26 58:06:12 - 15:41:08 - 2021-09-26 - 2021-10-03 18:09:25 - 23:53:37 - 2021-10-03 - 2021-10-10 12:43:15 - 33:23:35 - 2021-10-10 - 2021-10-17 19:59:19 - 103:17:14 - 2021-10-17 - 2021-10-24 28:06:32 - 36:25:49 - 2021-10-24 - 2021-10-31 10:36:55 - 46:12:31 - 2021-10-31 - 2021-11-07 11:34:53 - 31:31:49 - 2021-11-07 - 2021-11-19 13:14:41 - 14:45:40 - 2021-11-19 - 2021-11-21 1:49:06 - 11:37:26 - 2021-11-21 - 2021-11-28 10:08:29 - 14:48:53 - 2021-11-28 - 2021-12-07 12:38:18 - 31:53:32 - 2021-12-07 - 2021-12-14 0:54:47 - 0:59:07 - 2021-12-14 - 2021-12-20 0:57:28 - - - 2021-12-20 - 2021-12-28 0:20:01 - 1:28:45 - 2021-12-28 - 2022-01-03 - - - - 2022-01-03 - 2022-01-11 2:42:53 - 0:56:11 - 2022-01-11 - 2022-01-18 0:01:26 - 0:18:18 - 2022-01-18 - 2022-01-24 25:10:23 - - - 2022-01-24 - 2022-01-31 0:58:16 - - - 2022-01-31 - 2022-02-06 1:36:05 - 2:29:55 - 2022-02-06 - 2022-02-13 22:18:37 - 80:23:34 - 2022-02-13 - 2022-02-20 6:11:58 - 47:34:09 - 2022-02-20 - 2022-02-27 4:45:03 - 45:35:14 - 2022-02-27 - 2022-03-06 13:33:12 - 40:15:38 - 2022-03-06 - 2022-03-13 24:40:01 - 56:49:53 - 2022-03-13 - 2022-03-20 5:20:20 - 68:07:33 - 2022-03-20 - 2022-03-27 6:46:31 - 72:42:22 - 2022-03-27 - 2022-04-03 16:18:27 - 76:17:26 - 2022-04-03 - 2022-04-10 4:48:01 - 102:44:40 - 2022-04-10 - 2022-04-17 10:36:18 - 74:36:45 - 2022-04-17 - 2022-04-25 11:16:38 - 51:50:45 - 2022-04-25 - 2022-05-04 0:48:15 - 1:40:39 - 2022-05-04 - 2022-05-09 2:11:27 - 1:02:54 - 2022-05-09 - 2022-05-29 3:11:14 - 2:38:20 - 2022-05-29 - 2022-06-06 8:01:57 - 2:24:48 - 2022-06-06 - 2022-06-13 3:58:28 - 2:21:13 - 2022-06-13 - 2022-06-20 5:14:59 - - - 2022-06-20 - 2022-06-27 0:45:15 - 1:31:23 - 2022-06-27 - 2022-07-04 0:59:45 - 1:30:12 - 2022-07-04 - 2022-07-11 2:38:56 - 3:01:36 - 2022-07-11 - 2022-07-20 1:30:39 - 19:54:46 - 2022-07-20 - 2022-07-26 - - - - 2022-07-26 - 2022-08-08 7:58:11 - 26:40:43 - 2022-08-08 - 2022-08-22 24:16:14 - 56:53:46 - 2022-08-22 - 2022-08-29 0:45:51 - 0:20:58 - 2022-08-29 - 2022-09-08 146:35:52 - 57:50:04 - 2022-09-08 - 2022-09-12 0:25:55 - - - 2022-09-12 - 2022-09-19 1:27:29 - 1:01:49 - 2022-09-19 - 2022-09-25 152:34:50 - 71:37:38 - BATTERY DURATION AC DURATION PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2022-09-25 - 2022-10-02 168:00:02 - 102:20:40 - 2022-10-02 - 2022-10-09 29:04:53 - 46:42:33 - 2022-10-09 - 2022-10-16 28:08:20 - 30:07:13 - 2022-10-16 - 2022-10-23 49:01:01 - 77:44:48 - 2022-10-23 - 2022-10-30 5:35:46 - 74:34:52 - 2022-10-30 - 2022-11-07 1:41:17 - 7:51:55 - 2022-11-07 - 2022-11-14 10:26:00 - 6:30:41 - 2022-11-14 - 2022-11-21 6:41:58 - 11:19:56 - 2022-11-21 - 2022-12-01 0:31:48 - 0:38:16 - 2022-12-01 - 2022-12-05 0:41:11 - - - 2022-12-05 - 2022-12-13 51:57:07 - 27:15:45 - 2022-12-13 - 2022-12-19 0:32:49 - 0:51:31 - 2022-12-19 - 2023-01-11 - - - - 2023-01-11 - 2023-01-16 0:29:19 - 8:00:40 - 2023-01-16 - 2023-01-23 1:29:03 - - - 2023-01-23 - 2023-02-01 2:00:08 - 0:21:12 - 2023-02-01 - 2023-02-07 - - 0:43:13 - 2023-02-07 - 2023-02-13 0:57:38 - - - 2023-02-13 - 2023-02-20 1:41:58 - 0:41:47 - 2023-02-20 - 2023-02-27 0:03:48 - 1:16:06 - 2023-02-27 - 2023-03-06 7:58:55 - - - 2023-03-06 - 2023-03-14 19:32:09 - 1:14:27 - 2023-03-14 - 2023-03-28 4:57:36 - 3:08:37 - 2023-03-28 - 2023-04-03 7:08:20 - 5:35:29 - 2023-04-03 - 2023-04-12 2:04:57 - 2:22:21 - 2023-04-12 - 2023-04-30 1:49:57 - 0:46:49 - 2023-04-30 0:01:04 - 0:58:13 - 2023-05-01 - 2023-05-15 6:27:41 - 2:35:18 - 2023-05-15 - 2023-05-22 0:13:58 - 2:39:33 - 2023-05-22 - 2023-05-29 3:26:52 - 1:21:16 - 2023-05-29 - 2023-06-05 30:55:31 - 23:15:24 - 2023-06-05 - 2023-06-12 32:46:01 - 24:28:37 - 2023-06-12 - 2023-06-20 - - 0:00:17 - 2023-06-20 - 2023-06-26 0:41:07 - 0:31:56 - 2023-06-26 - 2023-07-03 0:51:28 - 1:02:20 - 2023-07-03 - 2023-07-09 5:12:42 - 1:10:18 - 2023-07-09 - 2023-07-17 12:41:00 - 22:32:32 - 2023-07-17 - 2023-07-24 73:13:46 - 23:43:22 - 2023-07-24 - 2023-07-31 74:14:32 - 1:59:59 - 2023-07-31 - 2023-08-07 149:02:57 - 26:53:20 - 2023-08-07 - 2023-08-15 0:13:43 - 6:37:39 - 2023-08-15 - 2023-08-21 1:03:34 - - - 2023-08-21 - 2023-08-27 5:04:19 - 27:09:04 - 2023-08-27 - 2023-09-03 12:55:25 - 80:53:17 - 2023-09-03 - 2023-09-18 17:33:46 - 71:24:47 - 2023-09-18 - 2023-09-26 2:54:23 - 2:45:01 - 2023-09-26 - 2023-10-06 0:53:39 - 0:22:04 - 2023-10-06 - 2023-10-15 1:14:02 - 29:02:46 - 2023-10-15 - - 1:37:26 - 2023-10-16 - 2023-10-23 28:08:56 - 24:03:33 - 2023-10-23 - 2023-11-03 30:33:50 - 37:37:37 - 2023-11-03 - 2023-11-06 - - 0:34:25 - 2023-11-06 - 2023-11-13 1:59:47 - 3:06:57 - BATTERY DURATION AC DURATION PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2023-11-13 - 2023-11-20 6:47:06 - 1:14:32 - 2023-11-20 - 2023-11-27 19:37:05 - 3:49:55 - 2023-11-27 - 2023-12-04 17:59:37 - 6:41:45 - 2023-12-04 - 2023-12-11 23:13:32 - 5:07:08 - 2023-12-11 - 2023-12-18 1:09:49 - 2:28:44 - 2023-12-18 - 2023-12-26 1:20:17 - 73:40:25 - 2023-12-26 - 2024-01-01 1:13:55 - 2:43:27 - 2024-01-01 - 2024-01-08 5:16:25 - 4:27:44 - 2024-01-08 - 2024-01-16 4:06:54 - 3:58:20 - 2024-01-16 - 2024-01-23 1:57:24 - 2:26:02 - 2024-01-23 - 2024-01-29 1:30:35 - 0:56:06 - 2024-01-29 - 2024-02-07 3:21:34 - 1:44:56 - 2024-02-07 - 2024-02-16 - - - - 2024-02-16 - 2024-02-19 - - 2:28:28 - 2024-02-19 - 2024-02-25 3:37:50 - 5:38:31 - 2024-02-25 - 2024-03-03 4:15:21 - 2:54:46 - 2024-03-03 - 2024-03-11 2:30:38 - 2:46:49 - 2024-03-11 - 2024-03-20 2:09:31 - 0:02:12 - 2024-03-20 - 2024-03-25 14:27:38 - 13:07:37 - 2024-03-25 - 2024-04-01 - - - - 2024-04-01 - 2024-04-08 0:18:56 - 2:08:45 - 2024-04-08 - 2024-04-30 - - - - 2024-04-30 - 2024-05-08 0:03:16 - 0:13:50 - 2024-05-08 - 2024-05-14 18:44:52 - 8:16:29 - 2024-05-14 - 2024-05-26 2:29:37 - 1:16:33 - 2024-05-26 - 2024-05-29 - - - - 2024-05-29 - 2024-06-03 4:57:43 - 4:17:14 - 2024-06-03 - 2024-06-10 1:13:18 - 3:32:28 - 2024-06-10 - 2024-06-17 3:04:03 - 1:37:05 - 2024-06-17 - 2024-06-24 4:57:22 - 3:11:59 - 2024-06-24 - 2024-07-01 0:47:39 - 0:50:24 - 2024-07-01 - 2024-07-09 7:55:24 - 5:43:11 - 2024-07-09 - 2024-07-15 - - 0:41:09 - 2024-07-15 - 2024-07-22 0:36:01 - 0:24:56 - 2024-07-22 - 2024-07-29 3:23:52 - 3:33:27 - 2024-07-29 - 2024-08-05 1:00:49 - 2:41:19 - 2024-08-05 - 2024-08-12 6:27:54 - 55:36:45 - 2024-08-12 - 2024-08-19 8:00:50 - 58:52:30 - 2024-08-19 - 2024-08-30 0:42:28 - 29:42:19 - 2024-08-30 - 2024-09-01 1:01:07 - 4:39:13 - 2024-09-01 - 2024-09-22 2:57:54 - 2:20:33 - 2024-09-22 - 2024-09-25 0:12:03 - 0:52:23 - 2024-09-25 - 2024-09-30 1:01:16 - 0:33:26 - 2024-09-30 - 2024-10-09 54:27:57 - 1:19:08 - 2024-10-09 - 2024-10-15 0:40:22 - 0:25:10 - 2024-10-15 - 2024-10-21 0:36:28 - 0:32:13 - 2024-10-21 - 2024-10-28 2:32:57 - 2:14:57 - 2024-10-28 - 2024-11-04 1:20:48 - 2:29:21 - 2024-11-04 - 2024-11-11 0:19:12 - 0:02:16 - 2024-11-11 - 2024-11-21 0:39:47 - 0:52:27 - 2024-11-21 - 2024-11-24 0:04:36 - - - 2024-11-24 - 2024-12-09 1:21:01 - 2:59:24 - 2024-12-09 - 2024-12-18 1:21:23 - 12:13:45 - BATTERY DURATION AC DURATION PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2024-12-18 - 2024-12-23 1:21:24 - 19:01:14 - 2024-12-23 - 2025-01-02 1:21:24 - 67:35:01 - 2025-01-02 - 2025-01-08 1:21:24 - 68:34:54 - 2025-01-08 - 2025-02-18 1:21:24 - 69:47:59 - 2025-02-18 - 2025-03-06 - - - - 2025-03-06 - 2025-03-20 - - - - 2025-03-20 - 2025-03-25 - - - - 2025-03-25 - 2025-03-31 - - - - 2025-03-31 - 2025-04-08 - - - - 2025-04-08 - 2025-04-22 - - - - 2025-04-22 - 2025-04-28 - - - - 2025-04-28 - 2025-05-06 - - - - 2025-05-06 - 2025-05-13 - - - - 2025-05-13 - 2025-06-02 - - - - 2025-06-02 - 2025-06-09 - - - - 2025-06-09 - 2025-06-18 - - - - 2025-06-18 - 2025-06-22 - - - - 2025-06-22 - 2025-06-30 - - - - 2025-06-30 - 2025-07-11 - - - - 2025-07-11 - 2025-07-15 - - - - 2025-07-15 - 2025-07-24 - - - - 2025-07-25 1:50:31 - 16:19:54 - 2025-07-26 11:13:27 - 0:00:40 - 2025-07-27 2:04:17 - 0:00:38 - Batter y capacity histor y Charge capacity history of the system's batteries PERIOD FULL CHARGE CAPACITY DESIGN CAPACITY 2020-08-05 - 2020-08-11 61.480 mWh 78.000 mWh 2020-08-11 - 2020-08-26 61.645 mWh 78.000 mWh 2020-08-26 - 2020-09-19 65.140 mWh 78.000 mWh 2020-09-19 - 2020-09-21 65.140 mWh 78.000 mWh 2020-09-21 - 2020-09-28 65.140 mWh 78.000 mWh 2020-09-28 - 2020-10-05 64.736 mWh 78.000 mWh 2020-10-05 - 2020-10-12 64.278 mWh 78.000 mWh 2020-10-12 - 2020-10-19 62.610 mWh 78.000 mWh 2020-10-19 - 2020-10-26 62.113 mWh 78.000 mWh 2020-10-26 - 2020-11-02 59.950 mWh 78.000 mWh 2020-11-02 - 2020-11-08 59.950 mWh 78.000 mWh 2020-11-08 - 2020-11-16 60.772 mWh 78.000 mWh 2020-11-16 - 2020-11-23 67.410 mWh 78.000 mWh 2020-11-23 - 2020-11-29 67.410 mWh 78.000 mWh 2020-11-29 - 2020-12-07 63.946 mWh 78.000 mWh 2020-12-07 - 2020-12-13 61.381 mWh 78.000 mWh 2020-12-13 - 2020-12-20 62.190 mWh 78.000 mWh 2020-12-20 - 2020-12-27 62.190 mWh 78.000 mWh 2020-12-27 - 2021-01-03 62.065 mWh 78.000 mWh 2021-01-03 - 2021-01-11 63.527 mWh 78.000 mWh 2021-01-11 - 2021-01-18 63.939 mWh 78.000 mWh 2021-01-18 - 2021-01-24 64.213 mWh 78.000 mWh 2021-01-24 - 2021-01-31 61.060 mWh 78.000 mWh PERIOD FULL CHARGE CAPACITY DESIGN CAPACITY 2021-01-31 - 2021-02-07 61.058 mWh 78.000 mWh 2021-02-07 - 2021-02-14 61.324 mWh 78.000 mWh 2021-02-14 - 2021-02-21 62.350 mWh 78.000 mWh 2021-02-21 - 2021-02-28 62.350 mWh 78.000 mWh 2021-02-28 - 2021-03-07 59.394 mWh 78.000 mWh 2021-03-07 - 2021-03-15 59.370 mWh 78.000 mWh 2021-03-15 - 2021-03-22 65.363 mWh 78.000 mWh 2021-03-22 - 2021-03-29 65.410 mWh 78.000 mWh 2021-03-29 - 2021-04-05 65.410 mWh 78.000 mWh 2021-04-05 - 2021-04-12 65.410 mWh 78.000 mWh 2021-04-12 - 2021-04-18 64.595 mWh 78.000 mWh 2021-04-18 - 2021-04-25 61.390 mWh 78.000 mWh 2021-04-25 - 2021-05-02 61.390 mWh 78.000 mWh 2021-05-02 - 2021-05-09 61.390 mWh 78.000 mWh 2021-05-09 - 2021-05-16 62.670 mWh 78.000 mWh 2021-05-16 - 2021-05-23 63.166 mWh 78.000 mWh 2021-05-23 - 2021-05-30 63.020 mWh 78.000 mWh 2021-05-30 - 2021-06-06 63.020 mWh 78.000 mWh 2021-06-06 - 2021-06-13 62.767 mWh 78.000 mWh 2021-06-13 - 2021-06-20 61.100 mWh 78.000 mWh 2021-06-20 - 2021-06-27 61.100 mWh 78.000 mWh 2021-06-27 - 2021-07-04 59.660 mWh 78.000 mWh 2021-07-04 - 2021-07-11 60.371 mWh 78.000 mWh 2021-07-11 - 2021-07-19 63.952 mWh 78.000 mWh 2021-07-19 - 2021-07-26 64.560 mWh 78.000 mWh 2021-07-26 - 2021-08-02 64.560 mWh 78.000 mWh 2021-08-02 - 2021-08-09 64.560 mWh 78.000 mWh 2021-08-09 - 2021-08-23 62.002 mWh 78.000 mWh 2021-08-23 - 2021-08-30 58.520 mWh 78.000 mWh 2021-08-30 - 2021-09-06 58.520 mWh 78.000 mWh 2021-09-06 - 2021-09-12 58.520 mWh 78.000 mWh 2021-09-12 - 2021-09-19 59.380 mWh 78.000 mWh 2021-09-19 - 2021-09-26 60.780 mWh 78.000 mWh 2021-09-26 - 2021-10-03 60.780 mWh 78.000 mWh 2021-10-03 - 2021-10-10 60.766 mWh 78.000 mWh 2021-10-10 - 2021-10-17 60.666 mWh 78.000 mWh 2021-10-17 - 2021-10-24 62.030 mWh 78.000 mWh 2021-10-24 - 2021-10-31 62.030 mWh 78.000 mWh 2021-10-31 - 2021-11-07 62.030 mWh 78.000 mWh 2021-11-07 - 2021-11-19 62.030 mWh 78.000 mWh 2021-11-19 - 2021-11-21 61.121 mWh 78.000 mWh 2021-11-21 - 2021-11-28 55.627 mWh 78.000 mWh 2021-11-28 - 2021-12-07 61.409 mWh 78.000 mWh 2021-12-07 - 2021-12-14 57.700 mWh 78.000 mWh 2021-12-14 - 2021-12-20 57.700 mWh 78.000 mWh 2021-12-20 - 2021-12-28 57.700 mWh 78.000 mWh 2021-12-28 - 2022-01-03 57.920 mWh 78.000 mWh 2022-01-03 - 2022-01-11 57.920 mWh 78.000 mWh 2022-01-11 - 2022-01-18 57.920 mWh 78.000 mWh 2022-01-18 - 2022-01-24 52.673 mWh 78.000 mWh 2022-01-24 - 2022-01-31 52.650 mWh 78.000 mWh 2022-01-31 - 2022-02-06 52.650 mWh 78.000 mWh 2022-02-06 - 2022-02-13 54.520 mWh 78.000 mWh 2022-02-13 - 2022-02-20 57.932 mWh 78.000 mWh PERIOD FULL CHARGE CAPACITY DESIGN CAPACITY 2022-02-20 - 2022-02-27 57.320 mWh 78.000 mWh 2022-02-27 - 2022-03-06 57.320 mWh 78.000 mWh 2022-03-06 - 2022-03-13 57.253 mWh 78.000 mWh 2022-03-13 - 2022-03-20 57.010 mWh 78.000 mWh 2022-03-20 - 2022-03-27 57.010 mWh 78.000 mWh 2022-03-27 - 2022-04-03 57.010 mWh 78.000 mWh 2022-04-03 - 2022-04-10 57.010 mWh 78.000 mWh 2022-04-10 - 2022-04-17 57.026 mWh 78.000 mWh 2022-04-17 - 2022-04-25 57.120 mWh 78.000 mWh 2022-04-25 - 2022-05-04 57.120 mWh 78.000 mWh 2022-05-04 - 2022-05-09 57.120 mWh 78.000 mWh 2022-05-09 - 2022-05-29 53.548 mWh 78.000 mWh 2022-05-29 - 2022-06-06 50.538 mWh 78.000 mWh 2022-06-06 - 2022-06-13 56.030 mWh 78.000 mWh 2022-06-13 - 2022-06-20 51.670 mWh 78.000 mWh 2022-06-20 - 2022-06-27 53.730 mWh 78.000 mWh 2022-06-27 - 2022-07-04 56.450 mWh 78.000 mWh 2022-07-04 - 2022-07-11 55.516 mWh 78.000 mWh 2022-07-11 - 2022-07-20 32.280 mWh 78.000 mWh 2022-07-20 - 2022-07-26 32.280 mWh 78.000 mWh 2022-07-26 - 2022-08-08 39.201 mWh 78.000 mWh 2022-08-08 - 2022-08-22 39.531 mWh 78.000 mWh 2022-08-22 - 2022-08-29 50.210 mWh 78.000 mWh 2022-08-29 - 2022-09-08 43.501 mWh 78.000 mWh 2022-09-08 - 2022-09-12 39.950 mWh 78.000 mWh 2022-09-12 - 2022-09-19 39.950 mWh 78.000 mWh 2022-09-19 - 2022-09-25 42.837 mWh 78.000 mWh 2022-09-25 - 2022-10-02 44.104 mWh 78.000 mWh 2022-10-02 - 2022-10-09 58.230 mWh 78.000 mWh 2022-10-09 - 2022-10-16 55.966 mWh 78.000 mWh 2022-10-16 - 2022-10-23 55.766 mWh 78.000 mWh 2022-10-23 - 2022-10-30 57.694 mWh 78.000 mWh 2022-10-30 - 2022-11-07 54.140 mWh 78.000 mWh 2022-11-07 - 2022-11-14 54.764 mWh 78.000 mWh 2022-11-14 - 2022-11-21 46.600 mWh 78.000 mWh 2022-11-21 - 2022-12-01 46.600 mWh 78.000 mWh 2022-12-01 - 2022-12-05 46.600 mWh 78.000 mWh 2022-12-05 - 2022-12-13 47.888 mWh 78.000 mWh 2022-12-13 - 2022-12-19 48.150 mWh 78.000 mWh 2022-12-19 - 2023-01-11 - - 2023-01-11 - 2023-01-16 48.283 mWh 78.000 mWh 2023-01-16 - 2023-01-23 51.257 mWh 78.000 mWh 2023-01-23 - 2023-02-01 50.330 mWh 78.000 mWh 2023-02-01 - 2023-02-07 50.330 mWh 78.000 mWh 2023-02-07 - 2023-02-13 50.330 mWh 78.000 mWh 2023-02-13 - 2023-02-20 50.330 mWh 78.000 mWh 2023-02-20 - 2023-02-27 50.330 mWh 78.000 mWh 2023-02-27 - 2023-03-06 50.330 mWh 78.000 mWh 2023-03-06 - 2023-03-14 52.542 mWh 78.000 mWh 2023-03-14 - 2023-03-28 52.446 mWh 78.000 mWh 2023-03-28 - 2023-04-03 45.720 mWh 78.000 mWh 2023-04-03 - 2023-04-12 34.530 mWh 78.000 mWh 2023-04-12 - 2023-04-30 34.530 mWh 78.000 mWh 2023-04-30 34.530 mWh 78.000 mWh PERIOD FULL CHARGE CAPACITY DESIGN CAPACITY 2023-05-01 - 2023-05-15 36.589 mWh 78.000 mWh 2023-05-15 - 2023-05-22 26.485 mWh 78.000 mWh 2023-05-22 - 2023-05-29 48.390 mWh 78.000 mWh 2023-05-29 - 2023-06-05 27.656 mWh 78.000 mWh 2023-06-05 - 2023-06-12 33.484 mWh 78.000 mWh 2023-06-12 - 2023-06-20 37.680 mWh 78.000 mWh 2023-06-20 - 2023-06-26 37.680 mWh 78.000 mWh 2023-06-26 - 2023-07-03 30.013 mWh 78.000 mWh 2023-07-03 - 2023-07-09 24.610 mWh 78.000 mWh 2023-07-09 - 2023-07-17 28.574 mWh 78.000 mWh 2023-07-17 - 2023-07-24 27.354 mWh 78.000 mWh 2023-07-24 - 2023-07-31 22.040 mWh 78.000 mWh 2023-07-31 - 2023-08-07 25.199 mWh 78.000 mWh 2023-08-07 - 2023-08-15 25.091 mWh 78.000 mWh 2023-08-15 - 2023-08-21 49.050 mWh 78.000 mWh 2023-08-21 - 2023-08-27 38.917 mWh 78.000 mWh 2023-08-27 - 2023-09-03 47.564 mWh 78.000 mWh 2023-09-03 - 2023-09-18 47.224 mWh 78.000 mWh 2023-09-18 - 2023-09-26 46.450 mWh 78.000 mWh 2023-09-26 - 2023-10-06 46.450 mWh 78.000 mWh 2023-10-06 - 2023-10-15 48.493 mWh 78.000 mWh 2023-10-15 51.570 mWh 78.000 mWh 2023-10-16 - 2023-10-23 52.824 mWh 78.000 mWh 2023-10-23 - 2023-11-03 46.544 mWh 78.000 mWh 2023-11-03 - 2023-11-06 28.340 mWh 78.000 mWh 2023-11-06 - 2023-11-13 49.354 mWh 78.000 mWh 2023-11-13 - 2023-11-20 49.520 mWh 78.000 mWh 2023-11-20 - 2023-11-27 48.949 mWh 78.000 mWh 2023-11-27 - 2023-12-04 48.460 mWh 78.000 mWh 2023-12-04 - 2023-12-11 48.460 mWh 78.000 mWh 2023-12-11 - 2023-12-18 47.176 mWh 78.000 mWh 2023-12-18 - 2023-12-26 45.780 mWh 78.000 mWh 2023-12-26 - 2024-01-01 45.780 mWh 78.000 mWh 2024-01-01 - 2024-01-08 45.780 mWh 78.000 mWh 2024-01-08 - 2024-01-16 47.855 mWh 78.000 mWh 2024-01-16 - 2024-01-23 51.930 mWh 78.000 mWh 2024-01-23 - 2024-01-29 51.930 mWh 78.000 mWh 2024-01-29 - 2024-02-07 51.930 mWh 78.000 mWh 2024-02-07 - 2024-02-16 - - 2024-02-16 - 2024-02-19 51.930 mWh 78.000 mWh 2024-02-19 - 2024-02-25 50.953 mWh 78.000 mWh 2024-02-25 - 2024-03-03 50.480 mWh 78.000 mWh 2024-03-03 - 2024-03-11 50.480 mWh 78.000 mWh 2024-03-11 - 2024-03-20 50.480 mWh 78.000 mWh 2024-03-20 - 2024-03-25 50.499 mWh 78.000 mWh 2024-03-25 - 2024-04-01 - - 2024-04-01 - 2024-04-08 49.960 mWh 78.000 mWh 2024-04-08 - 2024-04-30 49.960 mWh 78.000 mWh 2024-04-30 - 2024-05-08 49.960 mWh 78.000 mWh 2024-05-08 - 2024-05-14 49.524 mWh 78.000 mWh 2024-05-14 - 2024-05-26 47.262 mWh 78.000 mWh 2024-05-26 - 2024-05-29 47.230 mWh 78.000 mWh 2024-05-29 - 2024-06-03 40.117 mWh 78.000 mWh 2024-06-03 - 2024-06-10 16.640 mWh 78.000 mWh PERIOD FULL CHARGE CAPACITY DESIGN CAPACITY 2024-06-10 - 2024-06-17 33.854 mWh 78.000 mWh 2024-06-17 - 2024-06-24 37.097 mWh 78.000 mWh 2024-06-24 - 2024-07-01 23.970 mWh 78.000 mWh 2024-07-01 - 2024-07-09 31.065 mWh 78.000 mWh 2024-07-09 - 2024-07-15 24.632 mWh 78.000 mWh 2024-07-15 - 2024-07-22 3.490 mWh 78.000 mWh 2024-07-22 - 2024-07-29 12.015 mWh 78.000 mWh 2024-07-29 - 2024-08-05 15.300 mWh 78.000 mWh 2024-08-05 - 2024-08-12 13.965 mWh 78.000 mWh 2024-08-12 - 2024-08-19 13.715 mWh 78.000 mWh 2024-08-19 - 2024-08-30 29.062 mWh 78.000 mWh 2024-08-30 - 2024-09-01 40.330 mWh 78.000 mWh 2024-09-01 - 2024-09-22 40.330 mWh 78.000 mWh 2024-09-22 - 2024-09-25 40.330 mWh 78.000 mWh 2024-09-25 - 2024-09-30 40.472 mWh 78.000 mWh 2024-09-30 - 2024-10-09 44.330 mWh 78.000 mWh 2024-10-09 - 2024-10-15 43.877 mWh 78.000 mWh 2024-10-15 - 2024-10-21 43.530 mWh 78.000 mWh 2024-10-21 - 2024-10-28 41.936 mWh 78.000 mWh 2024-10-28 - 2024-11-04 25.190 mWh 78.000 mWh 2024-11-04 - 2024-11-11 25.190 mWh 78.000 mWh 2024-11-11 - 2024-11-21 25.190 mWh 78.000 mWh 2024-11-21 - 2024-11-24 25.190 mWh 78.000 mWh 2024-11-24 - 2024-12-09 5.063 mWh 78.000 mWh 2024-12-09 - 2024-12-18 6.394 mWh 78.000 mWh 2024-12-18 - 2024-12-23 4.899 mWh 78.000 mWh 2024-12-23 - 2025-01-02 5.435 mWh 78.000 mWh 2025-01-02 - 2025-01-08 5.628 mWh 78.000 mWh 2025-01-08 - 2025-02-18 5.404 mWh 78.000 mWh 2025-02-18 - 2025-03-06 - - 2025-03-06 - 2025-03-20 - - 2025-03-20 - 2025-03-25 - - 2025-03-25 - 2025-03-31 - - 2025-03-31 - 2025-04-08 - - 2025-04-08 - 2025-04-22 - - 2025-04-22 - 2025-04-28 - - 2025-04-28 - 2025-05-06 - - 2025-05-06 - 2025-05-13 - - 2025-05-13 - 2025-06-02 - - 2025-06-02 - 2025-06-09 - - 2025-06-09 - 2025-06-18 - - 2025-06-18 - 2025-06-22 - - 2025-06-22 - 2025-06-30 - - 2025-06-30 - 2025-07-11 - - 2025-07-11 - 2025-07-15 - - 2025-07-15 - 2025-07-24 - - 2025-07-25 -1 mWh -1 mWh 2025-07-26 -1 mWh -1 mWh 2025-07-27 -1 mWh -1 mWh Batter y life estimates Battery life estimates based on observed drains AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2020-08-05 - 2020- 08-11 5:47:47 - 7:21:14 - 2020-08-11 - 2020- 08-26 13:23:03 - 16:56:07 - 2020-08-26 - 2020- 09-19 - - - - 2020-09-19 - 2020- 09-21 7:39:43 - 9:10:29 - 2020-09-21 - 2020- 09-28 27:59:41 - 33:31:18 - 2020-09-28 - 2020- 10-05 108:21:55 - 130:34:07 - 2020-10-05 - 2020- 10-12 4:57:47 - 6:01:21 - 2020-10-12 - 2020- 10-19 10:15:11 - 12:46:24 - 2020-10-19 - 2020- 10-26 6:13:10 - 7:48:37 - 2020-10-26 - 2020- 11-02 4:06:55 - 5:21:15 - 2020-11-02 - 2020- 11-08 6:23:53 - 8:19:28 - 2020-11-08 - 2020- 11-16 6:06:33 - 7:50:28 - 2020-11-16 - 2020- 11-23 6:09:00 - 7:06:58 - 2020-11-23 - 2020- 11-29 6:48:33 - 7:52:44 - 2020-11-29 - 2020- 12-07 7:11:02 - 8:45:47 - 2020-12-07 - 2020- 12-13 8:11:28 - 10:24:32 - 2020-12-13 - 2020- 12-20 6:56:52 - 8:42:51 - 2020-12-20 - 2020- 12-27 8:34:34 - 10:45:23 - 2020-12-27 - 2021- 01-03 7:53:18 - 9:54:50 - 2021-01-03 - 2021- 01-11 7:42:13 - 9:27:31 - 2021-01-11 - 2021- 01-18 6:58:29 - 8:30:31 - 2021-01-18 - 2021- 01-24 9:18:58 - 11:18:59 - 2021-01-24 - 2021- 01-31 8:39:10 - 11:03:12 - 2021-01-31 - 2021- 02-07 6:00:47 - 7:40:54 - 2021-02-07 - 2021- 02-14 7:46:35 - 9:53:28 - 2021-02-14 - 2021- 02-21 8:10:22 - 10:13:27 - 2021-02-21 - 2021- 02-28 6:13:48 - 7:47:37 - 2021-02-28 - 2021- 03-07 11:26:17 - 15:01:17 - AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2021-03-07 - 2021- 03-15 6:38:35 - 8:43:39 - 2021-03-15 - 2021- 03-22 - - - - 2021-03-22 - 2021- 03-29 9:00:04 - 10:44:01 - 2021-03-29 - 2021- 04-05 17:57:23 - 21:24:46 - 2021-04-05 - 2021- 04-12 6:27:17 - 7:41:50 - 2021-04-12 - 2021- 04-18 14:57:52 - 18:04:12 - 2021-04-18 - 2021- 04-25 21:00:51 - 26:42:00 - 2021-04-25 - 2021- 05-02 6:20:42 - 8:03:43 - 2021-05-02 - 2021- 05-09 5:50:59 - 7:25:57 - 2021-05-09 - 2021- 05-16 9:14:38 - 11:30:18 - 2021-05-16 - 2021- 05-23 33:51:08 - 41:48:07 - 2021-05-23 - 2021- 05-30 24:47:31 - 30:41:06 - 2021-05-30 - 2021- 06-06 18:36:24 - 23:01:46 - 2021-06-06 - 2021- 06-13 9:09:47 - 11:23:13 - 2021-06-13 - 2021- 06-20 6:43:53 - 8:35:36 - 2021-06-20 - 2021- 06-27 6:41:23 - 8:32:25 - 2021-06-27 - 2021- 07-04 7:02:11 - 9:11:59 - 2021-07-04 - 2021- 07-11 6:46:16 - 8:44:54 - 2021-07-11 - 2021- 07-19 10:15:04 - 12:30:10 - 2021-07-19 - 2021- 07-26 6:35:27 - 7:57:46 - 2021-07-26 - 2021- 08-02 7:36:29 - 9:11:31 - 2021-08-02 - 2021- 08-09 8:06:25 - 9:47:40 - 2021-08-09 - 2021- 08-23 15:23:40 - 19:22:00 - 2021-08-23 - 2021- 08-30 5:25:58 - 7:14:29 - 2021-08-30 - 2021- 09-06 6:30:57 - 8:41:06 - 2021-09-06 - 2021- 09-12 9:38:19 - 12:50:49 - 2021-09-12 - 2021- 09-19 29:30:34 - 38:45:46 - 2021-09-19 - 2021- 09-26 23:10:16 - 29:44:09 - AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2021-09-26 - 2021- 10-03 6:36:36 - 8:28:58 - 2021-10-03 - 2021- 10-10 6:00:13 - 7:42:23 - 2021-10-10 - 2021- 10-17 5:34:39 - 7:10:16 - 2021-10-17 - 2021- 10-24 15:48:27 - 19:52:39 - 2021-10-24 - 2021- 10-31 5:54:21 - 7:25:35 - 2021-10-31 - 2021- 11-07 5:54:47 - 7:26:08 - 2021-11-07 - 2021- 11-19 5:45:23 - 7:14:18 - 2021-11-19 - 2021- 11-21 4:43:02 - 6:01:11 - 2021-11-21 - 2021- 11-28 4:17:38 - 6:01:15 - 2021-11-28 - 2021- 12-07 7:01:36 - 8:55:30 - 2021-12-07 - 2021- 12-14 4:36:04 - 6:13:11 - 2021-12-14 - 2021- 12-20 4:17:02 - 5:47:28 - 2021-12-20 - 2021- 12-28 5:52:07 - 7:56:00 - 2021-12-28 - 2022- 01-03 - - - - 2022-01-03 - 2022- 01-11 4:16:13 - 5:45:03 - 2022-01-11 - 2022- 01-18 2:20:42 - 3:09:29 - 2022-01-18 - 2022- 01-24 58:58:59 - 87:20:39 - 2022-01-24 - 2022- 01-31 4:01:21 - 5:57:34 - 2022-01-31 - 2022- 02-06 2:55:42 - 4:20:18 - 2022-02-06 - 2022- 02-13 8:49:53 - 12:38:05 - 2022-02-13 - 2022- 02-20 4:48:35 - 6:28:33 - 2022-02-20 - 2022- 02-27 4:43:48 - 6:26:12 - 2022-02-27 - 2022- 03-06 5:48:44 - 7:54:33 - 2022-03-06 - 2022- 03-13 12:02:19 - 16:24:04 - 2022-03-13 - 2022- 03-20 4:50:11 - 6:37:02 - 2022-03-20 - 2022- 03-27 4:25:28 - 6:03:12 - 2022-03-27 - 2022- 04-03 6:56:13 - 9:29:27 - 2022-04-03 - 2022- 04-10 4:27:04 - 6:05:24 - AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2022-04-10 - 2022- 04-17 4:38:12 - 6:20:31 - 2022-04-17 - 2022- 04-25 4:40:10 - 6:22:35 - 2022-04-25 - 2022- 05-04 4:25:15 - 6:02:13 - 2022-05-04 - 2022- 05-09 3:19:57 - 4:33:03 - 2022-05-09 - 2022- 05-29 3:23:32 - 4:56:29 - 2022-05-29 - 2022- 06-06 9:13:41 - 14:14:33 - 2022-06-06 - 2022- 06-13 15:22:44 - 21:24:33 - 2022-06-13 - 2022- 06-20 9:00:53 - 13:36:30 - 2022-06-20 - 2022- 06-27 4:06:34 - 5:57:57 - 2022-06-27 - 2022- 07-04 4:16:29 - 5:54:24 - 2022-07-04 - 2022- 07-11 4:22:45 - 6:09:10 - 2022-07-11 - 2022- 07-20 2:15:02 - 5:26:17 - 2022-07-20 - 2022- 07-26 - - - - 2022-07-26 - 2022- 08-08 2:48:50 - 5:35:57 - 2022-08-08 - 2022- 08-22 14:32:52 - 28:42:18 - 2022-08-22 - 2022- 08-29 2:47:25 - 4:20:05 - 2022-08-29 - 2022- 09-08 41:03:10 - 73:36:37 - 2022-09-08 - 2022- 09-12 2:14:48 - 4:23:12 - 2022-09-12 - 2022- 09-19 2:54:23 - 5:40:30 - 2022-09-19 - 2022- 09-25 26:41:04 - 48:35:18 - 2022-09-25 - 2022- 10-02 17:30:34 - 30:57:58 - 2022-10-02 - 2022- 10-09 8:30:43 - 11:24:07 - 2022-10-09 - 2022- 10-16 15:23:44 - 21:27:25 - 2022-10-16 - 2022- 10-23 13:30:04 - 18:53:03 - 2022-10-23 - 2022- 10-30 4:48:11 - 6:29:36 - 2022-10-30 - 2022- 11-07 4:26:42 - 6:24:14 - 2022-11-07 - 2022- 11-14 6:00:58 - 8:34:08 - 2022-11-14 - 2022- 11-21 9:32:18 - 15:57:56 - AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2022-11-21 - 2022- 12-01 2:40:22 - 4:28:26 - 2022-12-01 - 2022- 12-05 3:33:42 - 5:57:43 - 2022-12-05 - 2022- 12-13 11:19:44 - 18:27:10 - 2022-12-13 - 2022- 12-19 4:38:40 - 7:31:26 - 2022-12-19 - 2023- 01-11 - - - - 2023-01-11 - 2023- 01-16 3:01:00 - 4:52:25 - 2023-01-16 - 2023- 01-23 3:49:01 - 5:48:30 - 2023-01-23 - 2023- 02-01 3:35:56 - 5:34:39 - 2023-02-01 - 2023- 02-07 - - - - 2023-02-07 - 2023- 02-13 4:06:26 - 6:21:56 - 2023-02-13 - 2023- 02-20 3:28:11 - 5:22:39 - 2023-02-20 - 2023- 02-27 3:05:41 - 4:47:46 - 2023-02-27 - 2023- 03-06 10:38:30 - 16:29:32 - 2023-03-06 - 2023- 03-14 21:24:24 - 31:46:43 - 2023-03-14 - 2023- 03-28 4:21:26 - 6:28:49 - 2023-03-28 - 2023- 04-03 3:56:06 - 6:42:49 - 2023-04-03 - 2023- 04-12 2:50:03 - 6:24:09 - 2023-04-12 - 2023- 04-30 3:39:27 - 8:15:43 - 2023-04-30 2:47:25 - 6:18:10 - 2023-05-01 - 2023- 05-15 2:12:00 - 4:41:25 - 2023-05-15 - 2023- 05-22 1:34:21 - 4:37:54 - 2023-05-22 - 2023- 05-29 3:41:48 - 5:57:32 - 2023-05-29 - 2023- 06-05 20:16:18 - 57:10:26 - 2023-06-05 - 2023- 06-12 14:23:41 - 33:31:55 - 2023-06-12 - 2023- 06-20 - - - - 2023-06-20 - 2023- 06-26 3:15:51 - 6:45:26 - 2023-06-26 - 2023- 07-03 1:55:57 - 5:01:22 - 2023-07-03 - 2023- 07-09 2:05:16 - 6:37:02 - 2023-07-09 - 2023- 07-17 2:09:56 - 5:54:41 - AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2023-07-17 - 2023- 07-24 10:12:06 - 29:05:25 - 2023-07-24 - 2023- 07-31 81:46:26 - 289:23:59 - 2023-07-31 - 2023- 08-07 15:37:48 - 48:22:49 - 2023-08-07 - 2023- 08-15 1:20:13 - 4:09:23 - 2023-08-15 - 2023- 08-21 3:50:16 - 6:06:11 - 2023-08-21 - 2023- 08-27 2:54:23 - 5:49:31 - 2023-08-27 - 2023- 09-03 7:51:49 - 12:53:43 - 2023-09-03 - 2023- 09-18 8:27:59 - 13:59:03 - 2023-09-18 - 2023- 09-26 3:25:50 - 5:45:39 - 2023-09-26 - 2023- 10-06 3:25:36 - 5:45:16 - 2023-10-06 - 2023- 10-15 4:07:04 - 6:37:25 - 2023-10-15 - - - - 2023-10-16 - 2023- 10-23 22:41:02 - 33:29:42 - 2023-10-23 - 2023- 11-03 14:45:08 - 24:43:20 - 2023-11-03 - 2023- 11-06 - - - - 2023-11-06 - 2023- 11-13 3:22:35 - 5:20:11 - 2023-11-13 - 2023- 11-20 13:59:58 - 22:03:04 - 2023-11-20 - 2023- 11-27 33:54:30 - 54:01:58 - 2023-11-27 - 2023- 12-04 14:43:45 - 23:42:28 - 2023-12-04 - 2023- 12-11 41:44:50 - 67:11:44 - 2023-12-11 - 2023- 12-18 1:53:55 - 3:08:22 - 2023-12-18 - 2023- 12-26 4:03:33 - 6:54:59 - 2023-12-26 - 2024- 01-01 3:34:10 - 6:04:54 - 2024-01-01 - 2024- 01-08 8:28:37 - 14:26:35 - 2024-01-08 - 2024- 01-16 3:11:14 - 5:11:43 - 2024-01-16 - 2024- 01-23 4:03:05 - 6:05:07 - 2024-01-23 - 2024- 01-29 3:42:43 - 5:34:32 - 2024-01-29 - 2024- 02-07 3:48:35 - 5:43:21 - 2024-02-07 - 2024- 02-16 - - - - AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2024-02-16 - 2024- 02-19 - - - - 2024-02-19 - 2024- 02-25 3:21:10 - 5:07:58 - 2024-02-25 - 2024- 03-03 3:24:40 - 5:16:14 - 2024-03-03 - 2024- 03-11 3:15:34 - 5:02:11 - 2024-03-11 - 2024- 03-20 3:22:58 - 5:13:38 - 2024-03-20 - 2024- 03-25 3:21:55 - 5:11:52 - 2024-03-25 - 2024- 04-01 - - - - 2024-04-01 - 2024- 04-08 3:03:40 - 4:46:45 - 2024-04-08 - 2024- 04-30 - - - - 2024-04-30 - 2024- 05-08 2:27:01 - 3:49:32 - 2024-05-08 - 2024- 05-14 37:26:17 - 58:57:53 - 2024-05-14 - 2024- 05-26 3:23:25 - 5:35:44 - 2024-05-26 - 2024- 05-29 - - - - 2024-05-29 - 2024- 06-03 2:48:47 - 5:28:10 - 2024-06-03 - 2024- 06-10 1:25:57 - 6:42:55 - 2024-06-10 - 2024- 06-17 3:32:08 - 8:08:47 - 2024-06-17 - 2024- 06-24 3:23:13 - 7:07:18 - 2024-06-24 - 2024- 07-01 1:46:38 - 5:47:01 - 2024-07-01 - 2024- 07-09 2:45:46 - 6:56:13 - 2024-07-09 - 2024- 07-15 - - - - 2024-07-15 - 2024- 07-22 0:15:34 - 5:48:06 - 2024-07-22 - 2024- 07-29 0:44:55 - 4:51:39 - 2024-07-29 - 2024- 08-05 1:08:55 - 5:51:23 - 2024-08-05 - 2024- 08-12 0:43:23 - 4:02:22 - 2024-08-12 - 2024- 08-19 0:35:22 - 3:21:11 - 2024-08-19 - 2024- 08-30 1:03:19 - 2:49:57 - 2024-08-30 - 2024- 09-01 2:45:58 - 5:21:01 - 2024-09-01 - 2024- 09-22 1:30:32 - 2:55:06 - AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2024-09-22 - 2024- 09-25 8:15:53 - 15:59:04 - 2024-09-25 - 2024- 09-30 1:08:20 - 2:11:43 - 2024-09-30 - 2024- 10-09 87:06:07 - 153:15:31 - 2024-10-09 - 2024- 10-15 2:30:59 - 4:28:25 - 2024-10-15 - 2024- 10-21 3:31:05 - 6:18:14 - 2024-10-21 - 2024- 10-28 2:50:18 - 5:16:47 - 2024-10-28 - 2024- 11-04 1:21:01 - 4:10:53 - 2024-11-04 - 2024- 11-11 1:31:25 - 4:43:06 - 2024-11-11 - 2024- 11-21 2:19:46 - 7:12:47 - 2024-11-21 - 2024- 11-24 1:12:52 - 3:45:39 - 2024-11-24 - 2024- 12-09 0:26:44 - 6:51:56 - 2024-12-09 - 2024- 12-18 0:33:36 - 6:50:04 - 2024-12-18 - 2024- 12-23 0:25:45 - 6:50:09 - 2024-12-23 - 2025- 01-02 0:28:34 - 6:50:09 - 2025-01-02 - 2025- 01-08 0:29:35 - 6:50:09 - 2025-01-08 - 2025- 02-18 0:28:24 - 6:50:09 - 2025-02-18 - 2025- 03-06 - - - - 2025-03-06 - 2025- 03-20 - - - - 2025-03-20 - 2025- 03-25 - - - - 2025-03-25 - 2025- 03-31 - - - - 2025-03-31 - 2025- 04-08 - - - - 2025-04-08 - 2025- 04-22 - - - - 2025-04-22 - 2025- 04-28 - - - - 2025-04-28 - 2025- 05-06 - - - - 2025-05-06 - 2025- 05-13 - - - - 2025-05-13 - 2025- 06-02 - - - - 2025-06-02 - 2025- 06-09 - - - - 2025-06-09 - 2025- 06-18 - - - - AT FULL CHARGE AT DESIGN CAPACITY PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY 2025-06-18 - 2025- 06-22 - - - - 2025-06-22 - 2025- 06-30 - - - - 2025-06-30 - 2025- 07-11 - - - - 2025-07-11 - 2025- 07-15 - - - - 2025-07-15 - 2025- 07-24 - - - - 2025-07-25 - - - - 2025-07-26 - - - - 2025-07-27 - - - - Current estimate of battery life based on all observed drains since OS install Since OS install 904788:46:58 - 904788:46:58 - 我需要有分析过程 我是一个电池卖家 客户7月13日在我这买的电池 7月26日跟我说电池大图标显示100% 但是任务栏小图标显示0% 通过分析这个电池报告 我需要知道怎么帮客户处理这个问题
最新发布
07-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值