Author Topic: Zaurus as serial terminal?  (Read 5568 times)

datajerk

  • Full Member
  • ***
  • Posts: 219
    • View Profile
    • http://
Zaurus as serial terminal?
« Reply #15 on: October 25, 2004, 07:47:49 pm »
I used kermit and an Expect script to automate it.  I use my Zthincable to connect the DB9 Aircable to my Zaurus, then run the following script:

aircable settings (to check settings).
aircable mode service (to change to serial service provider mode for my XP machine and Zaurus BT with CF BT card.
aircable mode cable (to change back to aircable mode for use with other aircable products (I use all 3)).

Code: [Select]
#!/usr/bin/expect

log_user 0

set command [lindex $argv 0]
set mode [lindex $argv 1]

spawn kermit -y /dev/null

set timeout 5

expect {
        "C-Kermit>" {
                send "set line /dev/ttyS0\r"
                expect {
                        "C-Kermit>" {
                                send "set speed 115200\r"
                                expect "C-Kermit>"
                                send "c\r"
                                expect "other options."
                                sleep 1
                                set send_slow {1 .2}
                                if {$command == "settings" } {
                                        send "\001H\r"
                                        expect -re "Command interface help.*our addr: \[0-9A-F\]{12}"
                                        regsub "Command interface help\r\n(.*)" $expect_out(0,string) {\1} out
                                        puts "$out"
                                        sleep 1
                                        send "\001N\r"
                                        expect -re "\r\n.*\n"
                                        regsub "\r\n(.*)\n" $expect_out(0,string) {\1} out
                                        puts "Name: $out"
                                        sleep 1
                                        send "\001D\r"
                                        expect -re "services: .*\r"
                                        puts "$expect_out(0,string)"
                                }
                                if {$command == "mode" } {
                                        if {$mode == "service" } {
                                                send "\001DDS\r"
                                                expect -re ".*OK.*"
                                                regsub ".*(OK).*" $expect_out(0,string) {\1} out
                                                if {$out != "OK" } {
                                                        puts "enable discover failed"
                                                }
                                                sleep 5
                                                send "\001A3\r"
                                                sleep 5
                                                send "\001H\r"
                                                expect -re "Command interface help.*our addr: \[0-9A-F\]{12}"
                                                regsub ".*(mode .).*" $expect_out(0,string) {\1} out
                                                if {$out != "mode 3" } {
                                                        puts "service slave failed"
                                                }
                                        }
                                        if {$mode == "cable" } {
                                                send "\001A1\r"
                                                sleep 5
                                                send "\001H\r"
                                                expect -re "Command interface help.*our addr: \[0-9A-F\]{12}"
                                                regsub ".*(mode .).*" $expect_out(0,string) {\1} out
                                                if {$out != "mode 1" } {
                                                        puts "cable slave failed"
                                                }
                                                sleep 5
                                                send "\001DUS\r"
                                                expect -re ".*OK.*"
                                                regsub ".*(OK).*" $expect_out(0,string) {\1} out
                                                if {$out != "OK" } {
                                                        puts "disable discover failed"
                                                }
                                        }
                                }
                                sleep 1
                                send "\034c"
                                expect "C-Kermit>"
                                send "close\r"
                                expect "C-Kermit>"
                                send "quir\r"
                                exit 0
                        }
                        timeout {
                                puts "kermit timeout"
                                exit 1
                        }
                }
        }
        timeout {
                puts "kermit timeout"
                exit 1
        }
}

datajerk

  • Full Member
  • ***
  • Posts: 219
    • View Profile
    • http://
Zaurus as serial terminal?
« Reply #16 on: October 25, 2004, 07:49:01 pm »
NOTE on the above, I have never tested this script with the ZAircable dongle, only the male and female DB9 BT adapter.