| | |
| | | where record_time > @since |
| | | "@ @{ '@since' = $since } |
| | | foreach ($row in $read) { |
| | | # 厂商列可能为 NULL:直接强转 [double]/[int] 会抛异常、让整个通道从此不再推进。 |
| | | # 缺列一律转成 JSON null,后端把测量列的缺失当"设备没给",不写零代替缺失。 |
| | | $recordTime = To-Text $row[0] |
| | | $dataPoint = To-Int $row[1] |
| | | if ($null -eq $recordTime -or $null -eq $dataPoint) { |
| | | # 这两个是记录位置与幂等键:缺了无法归属,只能跳过并留下日志 |
| | | Write-Log " 跳过一个缺少 record_time 或 Data_Point 的行 [$key]" |
| | | continue |
| | | } |
| | | # record_time 是 Int64,超过 JavaScript 安全整数范围:必须以字符串传输 |
| | | $rows += [pscustomobject]@{ |
| | | record_time = [string]$row[0] |
| | | Data_Point = [int]$row[1] |
| | | Schedule_Index = [string]$row[2] |
| | | Step_Index = [int]$row[3] |
| | | Cycle_Index = [int]$row[4] |
| | | Step_Time = [double]$row[5] |
| | | Voltage = [double]$row[6] |
| | | eCurrent = [double]$row[7] |
| | | ChargeCapacity = [double]$row[8] |
| | | DischargeCapacity = [double]$row[9] |
| | | ChargeEnergy = [double]$row[10] |
| | | DischargeEnergy = [double]$row[11] |
| | | record_time = $recordTime |
| | | Data_Point = $dataPoint |
| | | Schedule_Index = To-Text $row[2] |
| | | Step_Index = To-Int $row[3] |
| | | Cycle_Index = To-Int $row[4] |
| | | Step_Time = To-Num $row[5] |
| | | Voltage = To-Num $row[6] |
| | | eCurrent = To-Num $row[7] |
| | | ChargeCapacity = To-Num $row[8] |
| | | DischargeCapacity = To-Num $row[9] |
| | | ChargeEnergy = To-Num $row[10] |
| | | DischargeEnergy = To-Num $row[11] |
| | | } |
| | | } |
| | | } |