Jump to content

KenHorse

Members
  • Posts

    67
  • Joined

  • Last visited

Recent Profile Visitors

1,281 profile views

KenHorse's Achievements

Regular Member

Regular Member (3/5)

0

Reputation

1

Community Answers

  1. Did you ever do a SEND version? That's what I need. PHP to read a binary file and xmodem send it to an embedded processor
  2. Yea I know it's an old protocol but still... Anyone figure out how to do it in PHP? Searching the forum turns up nothing xmodem related
  3. Ok thanks. Guess I'm too much of a noob. Sorry for wasting your time
  4. As my OP said, I'm using php_serial_class, which is loaded in global.php (hence the include): require_once("php_serial.class.php"); // Let's start the serial class $serial = new phpSerial; $comport = "/dev/ttyUSB0"; $serial->deviceSet($comport); // We can change the baud rate $serial->confBaudRate(19200); $serial->confParity("none"); $serial->confCharacterLength(8); $serial->confStopBits(1); $serial->confFlowControl("none"); // Then we need to open it $serial->deviceOpen(); //clear out crap $serial->sendMessage("\r"); $serial->sendMessage("\r"); sleep(0.1); // Or to read from //$read = $serial->readPort(); //to send to //$serial->sendMessage("data to send"); // If you want to change the configuration, the device must be closed //$serial->deviceClose(); //and then reopened Also, $stuff is not yet used but I plan on using it in the function after I get passed this issue As for $timediff, yes. I have not defined it yet. Again, I need to get passed this to clean other things up (I guess I should point out that this code was originally written by someone else long before PHP 7.0 was released. I'm trying to get it functional under 7.3xxx but I am certainly not overly fluent in PHP yet)
  5. function checkInput($stuff){ $starttime = microtime(true); while($read =="" && $timediff < '5'){ $read = $serial->readPort(); $substring = substr($read,0,1); //echo "SubString " . "$substring"; if($substring =="-"){ print"<CENTER><H2>We encountered an error when sending $read". "Please close window and try again</H2></CENTER>"; $noDataToSend ="False"; exit(); } $endtime = microtime(true); $timediff = $endtime - $starttime; if($substring =="+"){ //if ACK received, reset timer $starttime = microtime(true); }else{ if($substring !=""){echo "Substring " . "$substring\r\n";} } if($timediff > '4'){ print"<CENTER><H2>No response from the Station. Please close this window, check your serial connections and try again</H2></CENTER>"; $noDataToSend ="False"; exit(); } sleep(0.1); }//while } //end function And the line calling it: $senddata = "122222"; $serial->sendMessage("$senddata\r"); checkInput($senddata); Yes, I am not currently using the passed parameter ($stuff) but am planning to after I fix this problem
  6. It's the actual call to the class $read = $serial->readPort();
  7. BTW, PHP version is 7.3.29-1 So I changed the variable in the Function: function checkInput($stuff){ No change PHP Fatal error: Uncaught Error: Call to a member function readPort() on null in /var/www/controlserial.php:371
  8. outdated? How else do you include other files? (admittedly, I am not overly well versed in PHP but do a lot with VB)
  9. I have a file (global.php) that used by many different other files in a project I'm doing. This file contains many things including connecting to a MySQL database as well as loading a php_serial_class. So at the top of php file that needs these resources, I use include("global.php"); In one of those other php files, I also have a function that I'm using that calls the php_serial_class: $read = $serial->readPort(); This throws an error: Line 104 is the call to the function and Line 370 is the actual read call to the class I assume this error is thrown as the function doesn't know about that class? If so, can I simply also load the include within the function or is there a better way to do it?
  10. Craziest damn thing. The installer added the extension=dio.so at the beginning of php.ini, hence the bracketed term afterwards Thanks for opening my eyes
  11. Ok, finally figured out what I needed to do in order to install the dio.so extension and that succeeded. Updated both php.ini (web and cli) to load extension dio.so I created a test file with the following contents: $fd = dio_open('/dev/ttyUSB0', O_RDWR | O_NOCTTY | O_NONBLOCK); dio_close($fd); Now, when I run it, I receive the following error: PHP Warning: PHP Startup: Unable to load dynamic library 'dio.so[PHP]' (tried: /usr/lib/php/20180731/dio.so[PHP] (/usr/lib/php/20180731/dio.so[PHP]: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/dio.so[PHP].so (/usr/lib/php/20180731/dio.so[PHP].so: cannot open shared object file: No such file or directory)) in Unknown on line 0 I have checked /usr/lib/php and it IS there: root@mypi:/var/www/html/WebRCP# ls /usr/lib/php/20180731/ build curl.so fileinfo.so iconv.so mysqlnd.so phar.so simplexml.so sysvshm.so xmlreader.so bz2.so dio.so ftp.so json.so opcache.so posix.so sockets.so tokenizer.so xmlwriter.so calendar.so dom.so gd.so mbstring.so pdo.so readline.so sysvmsg.so wddx.so xsl.so
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.