Write FILENAME register (user register). Append character represented by argument `value` to the filename string. Write 0 to set a null terminator. First character received after null terminator starts a new filename. Args: value: Character to append (as string or int)
(value)
| 437 | |
| 438 | |
| 439 | def wrFILENAME(value): |
| 440 | """ |
| 441 | Write FILENAME register (user register). |
| 442 | |
| 443 | Append character represented by argument `value` to the filename string. |
| 444 | Write 0 to set a null terminator. |
| 445 | First character received after null terminator starts a new filename. |
| 446 | Args: |
| 447 | value: Character to append (as string or int) |
| 448 | Returns: |
| 449 | None |
| 450 | """ |
| 451 | global FILENAME, STATUS |
| 452 | |
| 453 | char = chr(value) |
| 454 | |
| 455 | if STATUS & STATUS_FILE_NAME_Msk: |
| 456 | # Clear file related flags and reset filename |
| 457 | STATUS &= ~(STATUS_FILE_NAME_Msk | STATUS_FILE_VALID_Msk) |
| 458 | logger.debug("wrFILENAME: STATUS register updated: FILE_NAME and FILE_VALID bits cleared") |
| 459 | |
| 460 | FILENAME = "" |
| 461 | logger.info("wrFILENAME: FILENAME register reset") |
| 462 | |
| 463 | if char != '\0': |
| 464 | # Got character to append |
| 465 | logger.debug(f"wrFILENAME: append {char} to filename") |
| 466 | FILENAME += f"{char}" |
| 467 | else: |
| 468 | # Got null terminator |
| 469 | logger.info(f"wrFILENAME: filename: {FILENAME}") |
| 470 | |
| 471 | STATUS |= STATUS_FILE_NAME_Msk |
| 472 | logger.debug("wrFILENAME: STATUS register updated: FILE_NAME bit set") |
| 473 | |
| 474 | if Video.setFilename(FILENAME) == True: |
| 475 | STATUS |= STATUS_FILE_VALID_Msk |
| 476 | logger.debug("wrFILENAME: STATUS register updated: FILE_VALID bit set") |
| 477 | else: |
| 478 | logger.error("wrFILENAME: Filename validation failed, file not found on server") |
| 479 | |
| 480 | |
| 481 | def rdRegs(index): |