Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Special Interest Groups
  3. QtonPi
  4. QFile and QTextStream on RPI don´t write to File

QFile and QTextStream on RPI don´t write to File

Scheduled Pinned Locked Moved Solved QtonPi
23 Posts 3 Posters 9.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    LogiSch17
    wrote on last edited by
    #12

    Just realised that when i open the files in vim .. at every postion he had failed to write. the file has a line of
    ^@^@^@^@^@^@....
    but i only can see them in vim .. text editor says that file has no common codec .. and when i cat the file it shows only the "good" entries.

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #13

      Hi and welcome to devnet,

      You should also add an explicit error message for when the file fails to open. You might get some clues about what is happening.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • L Offline
        L Offline
        LogiSch17
        wrote on last edited by
        #14

        Hi and thanks,
        I have allready add a debug message on file.open, which never has shown an error . And i message the stream status when the file is open after writing, and QTextStream status() always return 0 for :
        QTextStream::Ok 0 The text stream is operating normally.
        So the file is always opened correctly and QTextStream seems to write correctly.
        Because as i mentioned before, when it doesnt save the right message the file as the same among of chars in the file but it looks like
        ^@^@^@^@...
        So as kshegunov mentioned, i looks like the buffer has not been writen to the file ..
        Maybe it is because i never close my programm proberly or shutdown the system correctly and i do not have the possibility to do so.

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #15

          Why can't you shutdown your system properly ?

          If you indeed always "pull the plug" that won't help keep your system clean and not only the files you write but the rest also.

          What is your exact use case ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          1
          • L Offline
            L Offline
            LogiSch17
            wrote on last edited by
            #16

            Hi,
            my device is used as a controller and interface for an small kind of electric vehicle. Which is controlled via CAN Bus.
            And the the system is turned on and off via one button which is also the emergency off button, so it cuts of the battery completly.

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #17

              How fast and often will you be writing these files ?
              How large should they become ?
              Also, should they both survive a hard restart ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • L Offline
                L Offline
                LogiSch17
                wrote on last edited by
                #18

                These files were opened at every system startup and they are logging the initialisation of Can devices and some serial an i2c devices , as well as the log the rfid key which was used to unlock the machine.
                So yes they should survive cause i would need them for debuging .

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #19

                  So basically you need a read-only system but be able to write in some files.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  1
                  • L Offline
                    L Offline
                    LogiSch17
                    wrote on last edited by
                    #20

                    Thanks for that .
                    So i have now a second partiton for log files wich is read/write and one for filesystem.
                    Should make the system much safer.

                    kshegunovK 1 Reply Last reply
                    0
                    • L LogiSch17

                      Thanks for that .
                      So i have now a second partiton for log files wich is read/write and one for filesystem.
                      Should make the system much safer.

                      kshegunovK Offline
                      kshegunovK Offline
                      kshegunov
                      Moderators
                      wrote on last edited by kshegunov
                      #21

                      I fear the system will never be really "safe", as killing the application and even worse - the OS in such a notorious way is bound to have side-effects. OSes and filesystems are not made to be switched off at arbitrary times as a normal exiting sequence, albeit they do feature a number of measures to try and minimize the implications of sudden power loss. All that said it can't be guaranteed no matter how you partition the disk or how you play with the fs flags that the data will be written (or not written). The best thing I could suggest at this time is to research if it's possible to run ext4 in unbuffered mode, it might be slower, but at least you should have (most) of the data in the files.

                      Read and abide by the Qt Code of Conduct

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #22

                        In addition to what @kshegunov proposed, a system running on read-only filesystem with RAM disk used for the parts that needs to be writable but not stored in long term could be an option.

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        0
                        • L Offline
                          L Offline
                          LogiSch17
                          wrote on last edited by
                          #23

                          OK thanks.
                          I have now found a solution where i shutdown my system properly after getting a Can Message from my controller, and added an external power suply which stays 4 secs longer than the rest of the system . So that is enough time to shutdown.
                          Everything works perfect now.
                          Thanks a lot

                          1 Reply Last reply
                          0

                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved