Change Log
Here you can find changes done around every major dev beta update and that are now available in public beta.
#ChangeLog v2.6.3.6
- Keyboard section updated.
- Record button working again.
- Syntax updated for keys.
- List of Keys that are now used in keyboard section.
- Added Mouse event commands.
- {MOUSE.MOVE:X-Axis,Y-Axis}
- {MOUSE.LEFTDOWN}
- {MOUSE.LEFTUP}
- {MOUSE.RIGHTDOWN}
- {MOUSE.RIGHTUP}
- {MOUSE.MIDDLEDOWN}
- {MOUSE.MIDDLEUP}
#ChangeLog v2.6.3.3
- Updated Functions:
- [AutoSleep(...)]
- [GetAnswer()]
- Added Function:
- [InitQuestion("QuestionByAI","WordListTextFileName","PositiveGrammarColumnNameOrNumber","PositiveResultColumnNameOrNumber","NegativeGrammarColumnNameOrNumber","NegativeResultColumnNameOrNumber","ListeningTimeout","ShowIfItsNegativeOrPositive")] [GetAnswer()]
- Tray/context menu now has version numbers for plugins.
- Changed auto reset code so it uses less cpu.
#ChangeLog v2.6.2.96
- Added customizable sounds for cortana without ui command.
#ChangeLog v2.6.2.94
- Added New functions:
- [SetVarDate("varName","date")]
- date format = yyyy,MM,dd,hh,mm,ss
- [SetVarDate("varName","value","date")]
- date format = yyyy,MM,dd,hh,mm,ss
- [SetVarDate("varName","date")]
#ChangeLog v2.6.2.93
- Added function:
- [AutoSleep("EnableOrDisable","Timeout","PhraseOnExecute")] - not tested
- Updated Function:
- PlaySound function to be more stabilized
- Cortana function
- Added done sound on no GUI
#ChangeLog v2.6.2.91
- Plugins can now be loaded from tray icon..
- Plugins config is saved in Customization\XML\PluginsConfig.xml
#ChangeLog v2.6.2.88
- Added function:
- [GetPrevious("var name")] or [GetPreviousVar("var name")]
#ChangeLog v2.6.2.87
- Added functions:
- [Set("varName","varValue","resetTime","resetValue")]
- Sample:
- [Set("Details","NewsDescription","30","")]
- [IsEmpty("StringToCheck")]","Return this string if StringToCheck IsEmpty")]
- Sample:
- [IsEmpty("[Get("[Get("Details")]")]","Details for what, sir?")]
- Return data from a variable that may exist and speak it, else return "Details for what, sir?"
- Sample:
- [Remove("varName")] or [RemoveVar("varName")]
- [GetDateTime("varName","DateTimeFormat")] or [GetVarDateTime…]
- Sample:
- [GetDateTime("Details","dd/MM/yyyy")]
- [GetDateTime("Details","HH:mm")]
- Sample:
- [IndexOf("string","string to find")]
- [LastIndexOf("string","string to find")]
- [Set("varName","varValue","resetTime","resetValue")]
- Updated Functions:
- Set/Get functions updated
- Set function now updates DateTime and PreviousValue values.
- Get doesn't not error anymore when variable is not found.
#ChangeLog v2.6.2.81
- Fixed db loading issues.
- Added a way to auto fix db connection issues.
- Exposed SpeechSynth.SpeechPrompts so other apps/plugins can figure out if LINKS is speaking.
#ChangeLog v2.6.2.76
- Function Added:
- [LINKS.LHttp.Put("JSON","URI")]
- [LINKS.LHttp.Put("{"on":true}","http://huebridge/api/lz3nFIcGOelQlsxsDJYqrXGuxivjFmWswZ9fIGcw/lights/1/state")]
- Changed default settings
- Made PersistedBackgroundAdaptation off by default
- Moved music function to "Initial checks completed"
- Disabled push to talk check box
#ChangeLog v2.6.2.74
- Play/pause/stop music/video, show/hide media player commands updated.
- Show/hide should now work with any media player selected in settings.
- Play video should now play a random video.
#ChangeLog v2.6.2.73
- Plugins now loads after everything else is loaded to make sure nothing crashes while it loads new assemblies.
- Smoother startup animation.
- Added plugins OnDispose support.
- This method is called from all plugins before LINKS exits.
- Allowed case insensitive for built in functions.
- Replies back when asked to check update.
- More stable webserver initialization.
#ChangeLog v2.6.2.71
- Allows to run async functions, first async web function will be the uAuth2 function...
- New default function added: "close without confirmation" (add it manually in default commands)
#ChangeLog v2.6.2.70
- Bug fix for functions.
- \\ was not allowed in beginning of any parameter. Fixed.
#ChangeLog v2.6.2.68
- Enabled position saving for main control center.
#ChangeLog v2.6.2.67
- Some UI templates updated so plugins can access them.
#ChangeLog v2.6.2.65
- Added Function:
- [SayAs("data","ContentType")]
- This function is only for speech (obviously)
- See this for more info on ContentType
- Sample:
- localhost:54657/?action=[Speak("The phone number is [SayAs("18001239874","Telephone")]")]&key=ABC1234
#ChangeLog v2.6.2.64
- All UpdateReached events updated to fix multiple recognition events issues.
#ChangeLog v2.6.2.61
- InitReport will now be written if audio error occurs.
- Tray icon is now only clickable when LINKS is online and ready.
- Each db command now starts with open and end with close connection, may help db issues.
#ChangeLog v2.6.2.58
- Error log will now be posted in event viewer if LINKS is started as Administrator.
#ChangeLog v2.6.2.55
- Might fix issue with DB connection bug when changing profiles while mic is on.
- Test db performance issues including:
- Calling commands from different sections and changing profile then calling more commands.
- Changing profiles by voice vs change profile with UI.
#ChangeLog v2.6.2.52
- Added Function:
- [GetFile("FilePathOrUri","SaveAs")]
- SaveAs is optional
- Any file can now be downloaded. Might have a size limit.
- Sample:
- http://localhost:54657/?action=[GetFile("http://jarvis.ai-dot.net/test.txt","test.txt")]&key=ABC1234&output=response
- [JsonToXML("FilePathOrUri","SaveAs")]
- SaveAs is optional
- Sample:
- http://localhost:54657/?action=[JsonToXML("http://ai-dot.net/test_json.json","test_json.xml")]&key=ABC1234&output=response
- [GetXPathValue("FilePathOrUri","XPath")]
- Sample:
- http://localhost:54657/?action=[GetXPathValue("http://ai-dot.net/test_json.json","/root/glossary/title")]&key=ABC1234&output=response
- Sample:
- [GetFile("FilePathOrUri","SaveAs")]
#ChangeLog v2.6.2.51
- Fixes zunair.rocks/dashboard issue for fetching commands
- [EmulateSpeech("any command")]
- This should work on dynamic commands
#ChangeLog v2.6.2.50
- Added Functions:
- [TextToWave("phrase","voice","volume",'rate","filename","getBase64")]
- [TextToWave("wave to base 64","","",'","","true")]
- Speech code updated to fix a start of voice change/volume bug.
#ChangeLog v2.6.2.49
- [TextToWave("phrase","voice","volume","rate","filename")]
- Voice, Volume, Rate is same as SetTaskEx arguments/parameters.
- Sample:
- http://localhost:54657/?action=[TextToWave("This is a test","","","","")]&key=ABC1234
- It will make a wav file in LINKS\Customization\Speech\temp.wav
- We can put file name or full path in last parameter if needed
- http://localhost:54657/?action=[TextToWave("This is a test","","","","")]&key=ABC1234
#ChangeLog v2.6.2.48
- Added Function:
- [RemoveTask("name")]
- Deletes task created by SetTaskEx
- [RemoveTask("name")]
- Updated tasks so each task is checked every second
#ChangeLog v2.6.2.47
- Functions:
- [GetXPathValue("XML xPath")]
- Sample:
- http://localhost:54657/?action=[GetXPathValue("G:\...\jarvisWPF.vshost.exe.config","/configuration/userSettings/jarvisWPF.Properties.Settings/setting{@name%3D"searchEngine"}")]&key=ABC1234&output=response
- Take a look at FreeFormatter.com might be able to use all syntax from there... just replace any [...] square brackets with {...} curly braces and encode = and & characters
- Sample:
- [GetAnswer("","","","","","","")]
- Sample:
- http://localhost:54657/?action=[GetAnswer("Do you want me to turn on x light?","yes;on;lights","Lights On","off;lights","Lights Off","5000","show")]&key=ABC1234&output=response
- Sample:
- [GetXPathValue("XML xPath")]
#ChangeLog v2.6.2.46
- [GetAnswer("Do you want me to turn on x light?","yes;on;lights","Lights On","off;lights","Lights Off","5000","ShowIfItsNegativeOrPositive")]
- [GetXPathValue("xmlFilePath","xPath")]
#ChangeLog v2.6.2.44
- New command syntax for voice change per command
- Sample:
- Grammar: {ai=test_ainame} listen to {d=test_dictation}
- Response:[VoiceName="{{ai}}"]I heard {d}. I am {ai} and my voice is set to {{ai}}
- In any response we can now add the following to change voice properties:
- [VoiceName="..."]
- [VoiceRate="..."]
- [VoiceEmphasis="..."]
- [VolumeType="..."]
- [SpeechDelay="..."]
- Sample:
- Updated dictation code
- Should fix the issue where ai name was spoken with the dictation.
#ChangeLog v2.6.2.37:
Updated update functions. No more update check before startup. Update will be checked after startup. Will notify when update is completed. Autoupdate can be disabled from xml by changing UpdateOnStartup to false Added LINKSSharedDirectory for scripts and wordlists Can be changed from xml When entering dir path do not end path with slash.
#ChangeLog v2.6.2.31:
New Functions: [GetAnswer("QuestionByAI","WordListTextFileName","PositiveGrammarColumnNameOrNumber","PositiveResultColumnNameOrNumber","NegativeGrammarColumnNameOrNumber","NegativeResultColumnNameOrNumber","ListeningTimeout","ShowIfItsNegativeOrPositive")] "QuestionByAI" = question asked by AI "WordListTextFileName" = WordList to use for positive and negative grammar and results "PositiveGrammarColumnNameOrNumber" = WordList column name or number of positive grammar "PositiveResultColumnNameOrNumber" = WordList column name or number of results to show if positive grammar is recognized "NegativeGrammarColumnNameOrNumber" = WordList column name or number of negative grammar "NegativeResultColumnNameOrNumber" = WordList column name or number of results to show if negative grammar is recognized "ListeningTimeout" = stops listening for answer after defined milliseconds "ShowIfItsNegativeOrPositive" = show/hide + or - symbol based on recognized data Note: We don’t have to use WordList.
Example: Command: Say a number Response:[GetAnswer("which number?","test_nums.txt","firstAnswer","firstReslult","secondAnswer","secondResult","3000","Show")] Sample word list: firstAnswer firstReslult secondAnswer secondResult one number 1 negative one minus 1 two number 2 negative two minus 2 three number 3 negative three minus 3 four number 4 negative four minus 4 Note: We can use any column for result or answer(grammar) Make sure PositiveGrammar does not contain any words from NegativeGrammar and vice-versa.
Sample positive answer result: One = +number 1
[CallCommandEx("PositiveOrNagativeResponse","PositiveCommand","NegativeCommand")] Positive or Negative command will be called based on PositiveOrNagativeResponse. If PositiveOrNagativeResponse starts with a + sign, PositiveCommand will be called. If PositiveOrNagativeResponse starts with a - sign, NegativeCommand will be called. {{!Result!}} keyword can be used in PositiveCommand and NegativeCommand arguments to replace using PositiveOrNagativeResponse
Example: Command: Hey LINKS Response: [CallCommandEx("+Hello","{{!Result!}}","{{!Result!}}")] In this case Action will be converted to [CallCommandEx("+Hello","Hello","{{!Result!}}")] [SubString("String","startIndex","endIndex")] Example: Command: Remove first char of the string Response: [SubString("+Test","1","")] This will output "Test"
#ChangeLog v2.6.2.26:
New function: [SetSpeechConfig("Elizabeth","100","-10")] Name, Volume, Rate (-10 to 10) Remember: There are 3 types of volumes: System Volume Base Voice Volume - set through GUI/SetVoice functions and XML Phrase Voice Volume - default is Medium, not allowed change default. Can change per phrase using SpeakEx function. Some tests: SpeakEx with System Volume localhost:54657/?action=[SpeakEx("Completed","","","","","system")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","","40","","","system")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","Microsoft Zira Desktop","","","","system")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","40","","","system")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","40","Fast","","system")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","20","Slow","3","system")]&key=ABC1234
SpeakEx with Voice Volume localhost:54657/?action=[SpeakEx("Completed","","","","","voice")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","","100","","","voice")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","Microsoft Zira Desktop","","","","voice")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","40","","","voice")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","100","Fast","","voice")]&key=ABC1234 localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","20","Slow","3","voice")]&key=ABC1234 you can omit "voice" if you have to
Sets default base volume for current voice localhost:54657/?action=[SetSpeechVolume("20")]&key=ABC1234
Sets default voice localhost:54657/?action=[SetSpeechVoice("Elizabeth")]&key=ABC1234
Sets base Volume and Rate for specific voice localhost:54657/?action=[SetSpeechConfig("Elizabeth","100","-10")]&key=ABC1234 Test after volume and rate change: localhost:54657/?action=[SpeakEx("Completed","Elizabeth","20","ExtraFast","0","voice")]&key=ABC1234
#ChangeLog v2.6.2.23:
VoiceConfig.XML added Each voice volume will be saved separately. UI and SetVoice should update VocieConfig Lots of voice configs to test. SpeakEx(string phrase, string VoiceName, string VoiceVolume, string VoiceRate, string SpeechDelay, string VoiceVolumeOrSystemVolume = "voice")
#ChangeLog v2.6.2.23:
Task xml is written asyc for better performance. Addes some error control in webservice functions New Default function: "stop current voice" New Functions: StopVoiceByName("VoiceName","ResponseOnSuccess") StopVoiceByIdentifier ("PhraseIdentifier","ResponseOnSuccess") PhraseIdentifier is only set in tasks atm - uses tasks name. Following strings or nums can be used to set voice parameters for any speak/task function. Volume: Silent = 0, ExtraSoft <= 20, Soft <= 4, Medium <= 60, Loud <= 80, ExtraLoud <= 100 (default) Leave it blank for default
Rate: NotSet = 0 ExtraFast = 1 Fast = 2 Medium = 3 (default) Slow = 4 ExtraSlow = 5 Leave it blank for default
#ChangeLog v2.6.2.22:
- New Functions:
- [RunAsShell("shellCommand","responseAfterExecution","responseBeforeConfirmation","responseFailed","voiceVolume","voiceRate","voiceName","VoiceVolumeOrSystemVolume")]
- Updated Function:
- [SetSpeechVolume("volume")]
- [SetTaskEx("name","datetime","speechBefore","speechAfter","speechFailed","voice","volume","runAsShellCommand","repeat", rate = "", VoiceVolumeOrSystemVolume = "voice")]
#ChangeLog v2.6.2.20:
- Intro video code updated again. Video should now download in Customization folder.
- Loading window will now reappear after intro video.
- Function updated:
- SpeakExSysVol is now async.
- Functions Added:
- Synchronous speech [SpeakExSysVolSync("phrase","VoiceVolume","VoiceRate","phraseDelay","VoiceName")] where delay = delay between next speech.
- Asynchronous speech [SpeakExSysVolAsync("phrase","VoiceVolume","VoiceRate","phraseDelay","VoiceName")] where delay = delay between next speech.
- Fixed saving/retrieving of "Play on startup (full screen)" settings.
#ChangeLog v2.6.2.18:
- Intro video now downloads in Customization folder.
- Better shutdown if error is found on startup.
- Better disposing of HttpServer on exit.
- New function: [AIIntro("This is {{!AIName!}};I am {{!AIName!}} using {{!AIVoice!}} voice to be used for {{!AICatagory!}}","test_ainame.txt")]
- Speech Issues resolved - need to work on updating plugin speak functions
- Added SplashScreen (loading window)
- Fixed saving of Main Control Center size
- Main Control Center max size is now based on smallest screen side of current monitor
- New Functions:
- [AIIntro("This is {{!AIName!}}","test_ainame.txt")]
- [AIIntro("I am {{!AIName!}} using {{!AIVoice!}} voice","test_ainame.txt")]