Updating
Updating firmware on Furhat
To update firmware on a Furhat:
- Go to server menu
- Select Update firmware
- If a new version is available, you can automatically update it here.
- You can also upload a firmware manually downloaded here
Updating SDK
To update the SDK:
- Pull the latest changes using
git pull
- See the changelog for detailed changes
Breaking changes
Update to: Firmware > 2017-01-01 or Furhat SDK > 0.2.0
When updating to the latest firmware version for Furhat, there may be a compatibility issues with Skills. Skills made prior to December of 2016 will require a small change to work with the latest firmware. This process is simple and in this guide we will go through the necessary steps.
Step 1: Download skills from Furhat
To update the Skill, we will need to adjust a file that is not available in the 'web interface' view. Therefore use go to 'server > packages' and download the Skills you need to update.
You do not need to import these Skills into an IDE, as we will only change a few lines in one file.
Step 2: Change the init() function in $YourSkillName$Skill.java file
- First step is to locate the init() method in the $YourSkillName$Skill.java file.
- Remove SkillHandler handler parameter from the init method.
- If you find any other methods that use the SkillHandler as a parameter, treat them similarly.
Before:
public void init(SkillHandler handler) throws Exception {
// Code that remains unchanged
// ...
}
After:
public void init() throws Exception {
SkillHandler handler = getSkillHandler();
// Code that remains unchanged
// ...
}
Step 3: Change the query() function in $YourSkillName$Skill.java file
- In your skill file, see if you have a
query()
method.
If you don't want your skill to be queryable from other skills, remove the query method (if you have it).
If you want your skill to be queryable from other skills:
- import iristk.furhat.Queryable and iristk.furhat.QueryResponse
- Implement the Queryable interface by adding the implements Queryable
- Implement the query() method
See below example:
Before:
// $YourSkillName$Skill.java
// ...
import iristk.furhat.skill.Response;
// ...
public class $YourSkillName$Skill extends Skill {
// ...
@Override
public Response query(String text){
// Your implementation
}
}
After:
// $YourSkillName$Skill.java
// ...
import iristk.furhat.Queryable;
import iristk.furhat.QueryResponse;
// ...
public class $YourSkillName$Skill extends Skill implements Queryable {
// ...
@Override
public QueryResponse query(String queryText) {
// Your implementation
}
}
Step 4: Reupload the skills to your furhat
You can now zip the contents again and then re-upload this version of your Skill to your Furhat. For instructions on this, check how to package and upload a skill.