XMODULE Mac OS
XMODULE Mac OS
In this article, we are going to continue with our series on XModules and we are going to complete our understanding of what UI.Vision’s XModules add-on is and also complete the installation process on the macOS operating system.
The maximum version of Mac OS X, OS X, or macOS supported by each G3 and later Mac follows. For complete specs on a particular system, click the name of the Mac. For all Macs that are compatible with a specifc maximum supported version of Mac OS X - courtesy of EveryMac.com's Ultimate Mac Sort - click the OS of interest. The default will be a debug component build matching the current host operating system and CPU. For more info on GN, run gn help on the command line or read the quick start guide. Building Chromium for arm Macs requires additional setup.
[Note: Added 20th Feb 2021: The good folks at UI.Vision has just released the latest version of XModule and one of the improvements on the Mac is the introduction of a package installer. Check out this video for an updated approach to install XModules]
If you have not read the first part of this series, you can do so by clicking here.
In the first part we gave a high level overview about what XModules is and how to install it on macOS. We also showed how we need to “jump through some security hoops” when setting up on the macOS operating system to allow the File Access sub-module of XModules to work so that we can save our macros and other files on the local file system instead.
But XModules has 2 other sub-modules in addition to File Access and they are…
- Real User Simulation
- Desktop Automation
Together these 3 sub-modules of XModules gives you the ability to automate activities not just in the browser, but also on your local desktop computer, whether that be a Windows or macOS or Linux based computer.
FileAccess XModule
For the sake of completeness, let’s do a re-cap on why XModules and understand a little bit more about the FileAccess sub-module.
Essentially, UI.Vision RPA’s front-end graphical user interface (GUI) is actually a browser extension that runs inside of Chrome or Firefox browsers.
From a security standpoint, browser extensions are not permitted to access resources beyond the browser and because of that, there is a lot of limitation to what the UI.Vision RPA tool can automate. Basically, it can only automate steps and activities inside the browser.
If you want UI.Vision RPA to read a text document on your PC and take the contents and put it on your website, you are out of luck because whilst UI.Vision RPA can automate steps on your website, it cannot access the text document on your PC.
Similarly, if you have a macro developed on UI.Vision RPA (like the one we built in our first and second mini-tutorials) and you want to save that macro into your local hard disk, you can’t do that because browser extensions can only access a very specific area in your browser called a browser storage. You can only save the macro there.
If you delete the browser, that macro is gone.
Sure, UI.Vision RPA provided you tools to backup all the macros into a zip file that you can then save on your computer, but it would be much better if it can just save the macros into a designated folder on your PC.
These are the problems that the FileAccess XModules solve.
RealUser XModule
Whilst the ability to access the local file system is important, we also need to be able to automate actions outside of the browser. When I say actions, these are essentially the ability to simulate mouse clicks, drags and drops and keyboard entries exactly like a human does it.
Going a little bit technical here… The UI.Vision RPA browser automation capability is based on Selenium which relies on the specific webdrivers that are available for different web browsers. Whilst this is generally good enough to automate the testing of web applications, all the automation actions such as button clicks, data entry into text are all done via exposed APIs provided by the webdriver. In essence the automation is done at the browser-level.
But a normal user operating on a website using a mouse and keyboard, it doesn’t quite work the same way. We operate our mouse and keyboard directly on the operating system level and not on the browser level like webdriver.
In order to be able to automate as if a real user is interacting with the application, we need to go beyond webdriver and onto the operating system level and that is where the RealUser XModule comes in.
Essentially this module provides you with 4 capabilities that can simulate these activities at the operating system level.
- Mouse Clicks (including double clicks)
- Mouse Moves (including mouse up and mouse down events)
- Keyboard Typing (sending keystrokes and modifier keys like Ctrl, Alt, etc)
- Optical Character Recognition (OCR)
If you can think of it this way, the RealUser XModules component provides you with hands and eyes for your automation.
DesktopAutomation XModule
DesktopAutomation essentially builds on the FileAccess and RealUser XModules to allow automation on the desktop in addition to browser.
What this means is that without DesktopAutomation, all your automation can automate are activities inside the browser.
So in my earlier scenario…. if you want to automate….
- Opening a text file on your local hard disk and then
- copy the text from that file so that you can then
- paste it on a google document in your browser
then DesktopAutomation will allow you to automate steps 1 and 2, while browser automation will allow you to automate step 3.
DesktopAutomation relies on FileAccess and RealUser XModules to achieve its tasks.
Let’s Complete the Setup…
Now that we understand these different XModules and their respective tasks, let’s continue from the last step we were at to complete the setup of XModules on our macOS computer.
For this part, I have created a video of it and if you prefer watching the video than going through a guide, then just click play on the video below… Otherwise, the blog continues after the video below.
The Non-Video Step-by-Step Guide…
First thing we want to do is to open UI.Vision RPA by clicking on the browser extension button.
On the UI.Vision RPA window that opened, open the UI.Vision Settings by clicking on the little gear icon on the top right as shown below.
When the Settings window open, go to the XModules tab, and inside you will see the 3 sub-modules we talked about earlier. The first is the FileAccess XModule which should show a status of “Installed”.
The second and the third are the RealUser and DesktopAutomation XModules and they should have a status of “Not Installed” as shown in the screenshot below.
Setup the RealUser XModule…
To install the RealUser XModule, click on the Test It button for the RealUser XModule.
Once again we will hit the macOS prompt telling us that a program needs to be run but its developer cannot be identified. In this case, the program is called ‘kantu-xy-host’. The prompt should look like below.
We just have to click the ‘Cancel’ button here.
Next, we need to go into the macOS System Preferences (you can go there by clicking on the Apple Menu->System Preferences) and under the General tab, you’ll see a prompt for you to allow the ‘kantu-xy-host’ program to run, as shown below…
Click on the “Allow Anyway” button and close the Security and Privacy window.
Now, go back to UI.Vision RPA window by clicking the small blue UI.Vision browser extension button.
Open the UI.Vision RPA Settings screen by clicking the little gear icon
You will now see another macOS prompt as shown below…
This time, click on “Open” and you would have completed the setup for the RealUser XModule.
Now, at this stage, I thought it would be good to take a deeper look at the UI.Vision XModules architecture to give some background of what we are doing here… but if you just want to get through the installation, feel free to skip this part and just scroll down to the next section.
Now if we took a look at the files that we extracted when we download UI.Vision XModules, 3 key files standout and they are highlighted in the screenshot below.
As you can probably suspect, each one of these files correspond to each of the XModules.
We saw how when we tried to setup the FileAccess XModule that macOS security prompts us to give access to ‘kantu-file-access-host’.
Now when we are trying to access the RealUser XModule, we are prompted to allow the program ‘kantu-xy-host’ to run,.
So when we get to the part of setting up the DesktopAutomation XModule, can you guess which program will macOS prompt us then? That’s right, it would be ‘kantu-cv-host’.
Now the reason why we need to take all these extra steps on the macOS is because Apple has a tight security over the software it allows to run, on the macOS and they do this by ensuring that developers who write programs to run, on the macOS are verified by them.
And in this case, the XModules programs are not verified by Apple, hence macOS forces us to make this decision to allow the program to run,.
Setting up the DesktopAutomation XModule…
So, now that we understand what is happening here, we just need to repeat the steps for ‘kantu-cv-host’.
So…
- Open up UI.Vision RPA again and go to the Settings screen
- Under the XModule tab, look for the DesktopAutomation XModule and click ‘Test It’.
- You will see a macOS prompt telling you that ‘kantu-cv-host’ is not by a verified developer. Click Cancel
- Go to macOS System Preferences->Security and Privacy and look at the General tab.
- You will see a prompt there for ‘kantu-cv-host’. Click ‘Allow Anyway’.
- Close the Security and Privacy window and go back to UI.Vision RPA.
- You will be prompted to allow ‘kantu-cv-host’ to run,.
- Click on ‘Open’
And that’s it. you would now have completed the setup of the 3 XModules sub-modules.
In my upcoming blogs and videos, we will take a look at how to use these XModules capabilities to go beyond automation on the browser.
As usual, I hope this has been helpful and please do leave a comment below on what you think.
Feature Image Credit: ben o’bro
Steven Wong
I'm a technologist that has been working in IT for more than 20 years. My area of focus is around automation technologies that help optimise the repeatable and mundane freeing up our human capacity for more challenging and interesting tasks.
3 Years ago01 Dec 2017 5:52 pm by Dog Cow
I learned about FreeTerm because version 1.6 was included and documented in the May 1985 Macintosh Software Supplement. After trying Smartcom and BackDown DA, I now prefer FreeTerm, written by William Bond. FreeTerm versions 1.0 through 1.8 were originally written to promote MacBinary as a file transmission standard in the Macintosh world. Version 2.0 was written to encourage use of MacBinary II.
This blog article is a continuation in a series on XMODEM file transfers between the Mac 512K and my Mac mini running OS X. See the prior article on BackDown, which has links to all the preceding articles.
About FreeTerm 2.0
Taking up just 47K on disk, FreeTerm 2.0 is compatible with the original 64K ROM in a Mac 512K running System 2.0/Finder 4.1, all the way up to System 6 on a Mac 512Ke.
Download FreeTerm 2.0 at Mac GUI Vault
FreeTerm is a simple and free 24 line by 80 character glass-TTY (dumb) terminal emulator. It can send and receive ASCII text files, supports XMODEM file transfer with MacBinary, can copy and paste to the Clipboard, and will send all 128 ASCII characters from the Mac keyboard.
There is no VT100 or VT52 emulation.
Version 2.0, released in August 1987, adds several good improvements over version 1.8, including:
- up to 57600 baud
- better MacBinary support
- can unpack PackIt I, II, or III compressed archives
- resizable terminal window
- fast-track XMODEM for error-free serial links
Starting and Configuring FreeTerm 2.0
Double-click the FreeTerm 2.0 icon in the Finder to launch the application. The first time you start, you will be asked which port to use for communications. Select the Modem port. You should always use the Modem port for communications because it has a higher interrupt priority, making it less likely to lose characters at high transmission speeds. Click 'Make Default' to save this selection.
An empty terminal window opens. Nothing you type will appear on the screen yet. First you need to configure the terminal. Choose Settings... from the Terminal menu.
in the Settings dialog, you will see the standard RS232 transmission settings with speed, data bits, stop bits, and so on. In 99% of cases, you will not need to change any of the radio buttons except for Speed. 57600 seems to work well for me, at least for XMODEM transfers.
Now the set of checkboxes at the bottom of the dialog are a different story. These you will need to change. I recommend the settings shown in the screenshot below, with MacBinary Xmodem, Fast-Track Xmodem checked.
Click 'Make Default' to save the settings for next time you use FreeTerm. Or if you don't want your changes to be saved after you quit, just click OK. You are now ready to use FreeTerm 2.0!
Terminal Emulation
As stated earlier, FreeTerm 2.0 is dumb terminal emulator. That means there is no VT100 or other type of sophisticated terminal emulation. Still, you can navigate your way around a Unix or Linux system.
There are a number of tutorials that show how to configure a *nix system so that serial terminals can log in. Depending on which version of Mac OS X you're using, the technique changes. On OS X 10.2, for example, it's fairly straightforward to open a serial line in /etc/ttys
But newer versions of Mac OS X don't use that file the same way. I found that the instructions on this page, Serial console login on OS X, worked for me on Mac OS X 10.5.8.
In the Terminal application, type:
Code: |
screen /dev/cu.usbserial-A906CJB1 57600 |
Be sure to replace the cu.usbserial device with the correct name of your USB-to-serial adapter (if you're using one), and change the baud rate if you needed.
In screen, press Control-A. Type a colon ( : ) then type:
Code: |
exec ::: /usr/libexec/getty std.57600 |
Again, change the baud rate if needed. If you have FreeTerm running on the Mac 512K and the serial connection is good, you should see a login prompt on the Mac 512K's terminal window.
Try logging in and running some commands. Everything will be echoed on both screens, including your login password typed from the Mac 512K (the one exception is that your password will not show up on the Mac 512K's screen).
XMODEM File Transfers
I find that FreeTerm's greatest utility is for XMODEM file transfers. Open the File menu and choose Xmodem receive... to download a file.
On the sending machine, start the XMODEM file transfer. On the Mac 512K, you will next see a dialog box asking for a file name and location. If you're transferring a MacBinary-encoded file (which you should be doing, because this is the best format!) the file name doesn't matter. MacBinary includes the file name and FreeTerm will automatically use that name for the received file.
Don't you love those old-fashioned, pre-hierarchical Standard File dialogs? After a some moments, the Mac 512K will start downloading the file. After a few seconds or a few minutes, depending on the size of the file, the Mac will beep to signal that transfer is complete. MacBinary files are automatically decoded; there is no need to use BinHex 5.0 on them.
If the file you downloaded was compressed with PackIt, you can choose
Bluetooth Module Mac Os
UnPack File... from the File menu to extract its contents. I discovered that FreeTerm's unpack routines are incompatible with some PackIt archives. I'm not sure what the exact problem was, but when I couldn't use FreeTerm's UnPack command, I was able to use the PackIt II application to extract.FreeTerm can send files via XMODEM too. They will be automatically encoded in MacBinary II format, as long as you checked the MacBinary option in the terminal settings dialog. I have not yet been able to configure lrz on Mac OS X to successfully receive files sent from the Mac 512K. I always get a timeout. Anyone know what I'm doing wrong?
Module Mac Os
In conclusion, after having tried Smartcom II, BackDown DA, and now FreeTerm 2.0, FreeTerm is now my preferred way to download files to the Mac 512K. In terms of features and compatibility, BackDown and FreeTerm are quite similar, but FreeTerm wins out because it supports up to 57600 baud which makes transfers go much more quickly.I recently transferred a 1.2MB file with XMODEM and 9200 baud to Mac 512Ke with a hard disk, and it took about 45 minutes! So faster speeds really make a difference.
The next article in the Mac 512K blog will either be about Macintosh XINU, if I can find a working copy, otherwise it will be about disk cache and RAM disks.
The Mac 512K Blog wrote: |
This blog chronicles the Macintosh 512K and my projects with it. We will test software, fix hardware, program it, hack it, and generally take the 512K Macintosh to its limits. Do leave any feedback you may have, either to my email dog_cow@macgui.com or by posting a comment to this article. |
« Using the BackDown DA for XMODEM Downloading • Alternative Operating Systems: Macintosh XINU »
XMODULE Mac OS