haruzira_sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/README.md +36 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/haruzira_sdk.gemspec +32 -0
- data/lib/haruzira_sdk/HaruziraMessage.rb +40 -0
- data/lib/haruzira_sdk/HaruziraRequire.rb +17 -0
- data/lib/haruzira_sdk/HzClientTcpCommunication.rb +799 -0
- data/lib/haruzira_sdk/HzEncryption.rb +145 -0
- data/lib/haruzira_sdk/HzTrace.rb +17 -0
- data/lib/haruzira_sdk/MsgAckCancelReading.rb +62 -0
- data/lib/haruzira_sdk/MsgAckSendSpeechData.rb +74 -0
- data/lib/haruzira_sdk/MsgAckStartComm.rb +72 -0
- data/lib/haruzira_sdk/MsgNotifyCompleteSpeech.rb +61 -0
- data/lib/haruzira_sdk/MsgNotifyEndComm.rb +66 -0
- data/lib/haruzira_sdk/MsgNotifyStopComm.rb +69 -0
- data/lib/haruzira_sdk/MsgReqCancelReading.rb +60 -0
- data/lib/haruzira_sdk/MsgReqStartComm.rb +99 -0
- data/lib/haruzira_sdk/MsgSendSpeechData.rb +120 -0
- data/lib/haruzira_sdk/version.rb +3 -0
- data/lib/haruzira_sdk.rb +6 -0
- metadata +111 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
require "haruzira_sdk/HaruziraMessage"
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# <summary>
|
|
7
|
+
# 通信開始要求メッセージ(0x00)
|
|
8
|
+
# </summary>
|
|
9
|
+
class MsgReqStartComm
|
|
10
|
+
|
|
11
|
+
def initialize()
|
|
12
|
+
#region 変数・定数定義
|
|
13
|
+
# <summary>
|
|
14
|
+
# メンバーIndex offset定義
|
|
15
|
+
# </summary>
|
|
16
|
+
@INDEX_ID = 0 #メッセージID
|
|
17
|
+
@INDEX_ENC_FLG = 1 #暗号化フラグ
|
|
18
|
+
@INDEX_CER_FLG = 2 #認証フラグ
|
|
19
|
+
@INDEX_PADDING = 3 #アライメント
|
|
20
|
+
@INDEX_PORT = 4 #ポート番号
|
|
21
|
+
@INDEX_NAME_LEN = 6 #接続元名称サイズ
|
|
22
|
+
@INDEX_PASSWD_LEN = 8 #パスワードサイズ
|
|
23
|
+
@INDEX_PADDING2 = 10 #アライメント
|
|
24
|
+
@INDEX_NAME = 12 #接続元名称
|
|
25
|
+
#endregion
|
|
26
|
+
|
|
27
|
+
# <summary>
|
|
28
|
+
# 送信メンバデータ値定義
|
|
29
|
+
# </summary>
|
|
30
|
+
#暗号化フラグ
|
|
31
|
+
@ENC_FLG_OFF = 0x00 #暗号化無
|
|
32
|
+
@ENC_FLG_ON = 0x01 #暗号化有
|
|
33
|
+
#認証フラグ
|
|
34
|
+
@CER_FLG_OFF = 0x00 #認証無
|
|
35
|
+
@CER_FLG_ON = 0x01 #認証有
|
|
36
|
+
|
|
37
|
+
@id = MSG_REQ_START_COMM #メッセージID
|
|
38
|
+
@enc_flg = 0x00 #暗号化フラグ
|
|
39
|
+
@cer_flg = 0x00 #認証フラグ
|
|
40
|
+
@padding = 0x00 #アライメント
|
|
41
|
+
@port = 46000 #ポート番号
|
|
42
|
+
@name_len = 0x00 #接続元名称サイズ
|
|
43
|
+
@passwd_len = 0x00 #パスワードサイズ
|
|
44
|
+
@padding2 = Array.new(2, 0x00) #アライメント
|
|
45
|
+
@name = nil #接続元名称
|
|
46
|
+
@passwd = nil #パスワード
|
|
47
|
+
#@byte[] reserve { get; set; } #予備
|
|
48
|
+
@head_len = (1 * 4) + (2 * 3) + @padding2.size #ヘッダーサイズ(読み上げデータを除いたサイズ)
|
|
49
|
+
@total_len = 0 #送信フィールド合計サイズ
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
#アクセサ定義(メンバーIndex offset)
|
|
53
|
+
attr_reader :INDEX_ID, :INDEX_ENC_FLG, :INDEX_CER_FLG, :INDEX_PADDING, :INDEX_PORT, :INDEX_NAME_LEN, :INDEX_PASSWD_LEN, :INDEX_PADDING2, :INDEX_NAME
|
|
54
|
+
|
|
55
|
+
#アクセサ定義(送信メンバデータ値)
|
|
56
|
+
attr_reader :ENC_FLG_OFF, :ENC_FLG_ON, :CER_FLG_OFF, :CER_FLG_ON
|
|
57
|
+
|
|
58
|
+
#アクセサ定義
|
|
59
|
+
attr_accessor :enc_flg, :cer_flg, :port, :name_len, :passwd_len, :name, :passwd
|
|
60
|
+
attr_reader :id, :head_len, :total_len
|
|
61
|
+
|
|
62
|
+
public
|
|
63
|
+
# <summary>
|
|
64
|
+
# 送信データ生成
|
|
65
|
+
# </summary>
|
|
66
|
+
# <returns>生成データサイズ, 生成データ</returns>
|
|
67
|
+
def makeSendData()
|
|
68
|
+
@total_len = @head_len + (@name_len + @passwd_len);
|
|
69
|
+
data = nil
|
|
70
|
+
|
|
71
|
+
begin
|
|
72
|
+
#パスワードとアカウント名のチェック
|
|
73
|
+
if(name_len > 0 && name == nil)
|
|
74
|
+
return ret, nil
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
if(passwd_len > 0 && passwd == nil)
|
|
78
|
+
return ret, nil
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
#ネットワークバイトオーダー(little -> big)変換後に、Byte配列に変換
|
|
82
|
+
bPort = [port].pack("n*").unpack("C*")
|
|
83
|
+
bUserLen = [name_len].pack("n*").unpack("C*")
|
|
84
|
+
bPasswdLen = [passwd_len].pack("n*").unpack("C*")
|
|
85
|
+
|
|
86
|
+
if(@name != nil && @passwd != nil)
|
|
87
|
+
data = [@id] + [@enc_flg] + [@cer_flg] + [@padding] + bPort + bUserLen + bPasswdLen + @padding2 + @name + @passwd
|
|
88
|
+
else
|
|
89
|
+
data = [@id] + [@enc_flg] + [@cer_flg] + [@padding] + bPort + bUserLen + bPasswdLen + @padding2
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
rescue Exception => ex
|
|
93
|
+
p ex
|
|
94
|
+
@total_len = 0
|
|
95
|
+
ensure
|
|
96
|
+
return @total_len, data
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
require "haruzira_sdk/HaruziraMessage"
|
|
4
|
+
|
|
5
|
+
# <summary>
|
|
6
|
+
# 読み上げデータ送信メッセージ(0x03)
|
|
7
|
+
# </summary>
|
|
8
|
+
class MsgSendSpeechData
|
|
9
|
+
|
|
10
|
+
def initialize()
|
|
11
|
+
#region 変数・定数定義
|
|
12
|
+
#メンバーIndex offset定義
|
|
13
|
+
@INDEX_ID = 0 #メッセージID
|
|
14
|
+
@INDEX_ENC_FLG = 1 #暗号化フラグ
|
|
15
|
+
@INDEX_DATA_TYPE = 2 #データ区分(Text or SSML)
|
|
16
|
+
@INDEX_PRIORITY = 3 #プライオリティ
|
|
17
|
+
@INDEX_LANG_CODE = 4 #ロケールID(言語コード)
|
|
18
|
+
@INDEX_GENDER = 6 #性別
|
|
19
|
+
@INDEX_AGE = 7 #年齢
|
|
20
|
+
@INDEX_REPEAT = 8 #リピート回数
|
|
21
|
+
@INDEX_TIME_STAMP = 9 #タイムスタンプ(00:00:00)
|
|
22
|
+
@INDEX_PADDING = 17 #アライメント
|
|
23
|
+
@INDEX_NAME_LEN = 18 #接続元名称サイズ
|
|
24
|
+
@INDEX_SIZE = 20 #読み上げデータサイズ
|
|
25
|
+
@INDEX_NAME = 24 #接続元名称(可変)
|
|
26
|
+
|
|
27
|
+
# <summary>
|
|
28
|
+
# 送信メンバデータ値定義
|
|
29
|
+
# </summary>
|
|
30
|
+
#暗号化フラグ
|
|
31
|
+
@ENC_FLG_OFF = 0x00 #暗号化無
|
|
32
|
+
@ENC_FLG_ON = 0x01 #暗号化有
|
|
33
|
+
#データ区分
|
|
34
|
+
@DATA_TYPE_TEXT = 0x00 #Text
|
|
35
|
+
@DATA_TYPE_SSML = 0x01 #SSML
|
|
36
|
+
@DATA_TYPE_TEXT_COMP = 0x10 #Text(圧縮データ)
|
|
37
|
+
@DATA_TYPE_SSML_COMP = 0x11 #SSML(圧縮データ)
|
|
38
|
+
#プライオリティ
|
|
39
|
+
@PRIORITY_LOW = 0x00 #低い(読み上げない)
|
|
40
|
+
@PRIORITY_NORMAL = 0x01 #通常(順次読み上げ)
|
|
41
|
+
@PRIORITY_HIGH = 0x02 #高い(割り込み読み上げ)
|
|
42
|
+
#@PRIORITY_EMARGENCY = 0x03 #緊急(最優先で割り込み読み上げ)
|
|
43
|
+
#言語コード
|
|
44
|
+
@LANG_LOW = 0x00 #
|
|
45
|
+
#性別
|
|
46
|
+
@GENDER_FEMALE = 0x00 #女性
|
|
47
|
+
@GENDER_MALE = 0x01 #男性
|
|
48
|
+
@GENDER_UNKNOWN = 0x02 #中性
|
|
49
|
+
#性別
|
|
50
|
+
#AGE_6 = 0x06 #6歳
|
|
51
|
+
#繰り返し回数
|
|
52
|
+
@REPEAT_NONE = 0x00 #繰り返し無
|
|
53
|
+
@REPEAT_INFINITY = 0xff #繰り返し無限
|
|
54
|
+
|
|
55
|
+
@id = MSG_SEND_SPEECH_DATA #メッセージID
|
|
56
|
+
@enc_flg = 0x00 #暗号化フラグ
|
|
57
|
+
@data_type = 0x00 #データ区分(Text or SSML)
|
|
58
|
+
@priority = 0x01 #プライオリティ
|
|
59
|
+
@lang_code = 0x00 #ロケールID(言語コード)
|
|
60
|
+
@gender = 0x00 #性別
|
|
61
|
+
@age = 0x00 #年齢
|
|
62
|
+
@repeat = 0x00 #リピート回数
|
|
63
|
+
@time_stamp = Array.new(8, 0x00) #タイムスタンプ(00:00:00)
|
|
64
|
+
@padding = 0x00 #アライメント
|
|
65
|
+
@name_len = 0x00 #接続元名称サイズ
|
|
66
|
+
@size = 0x00 #読み上げデータサイズ
|
|
67
|
+
@name = nil #接続元名称(可変)
|
|
68
|
+
@data = nil #データ(可変)
|
|
69
|
+
@head_len = (1 * 4) + (2 + 1 * 12) + (2 + 4) #ヘッダーサイズ(読み上げデータを除いたサイズ)
|
|
70
|
+
@total_len = 0 #送信フィールド合計サイズ
|
|
71
|
+
#endregion
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
#アクセサ定義(メンバーIndex offset)
|
|
75
|
+
attr_reader :INDEX_ID, :INDEX_ENC_FLG, :INDEX_DATA_TYPE, :INDEX_PRIORITY, :INDEX_LANG_CODE, :INDEX_LANG_CODE, \
|
|
76
|
+
:INDEX_GENDER, :INDEX_AGE, :INDEX_REPEAT, :INDEX_TIME_STAMP, :INDEX_PADDING, :INDEX_NAME_LEN, \
|
|
77
|
+
:INDEX_SIZE, :INDEX_NAME
|
|
78
|
+
|
|
79
|
+
#アクセサ定義(送信メンバデータ値)
|
|
80
|
+
attr_reader :ENC_FLG_OFF, :ENC_FLG_ON, :DATA_TYPE_TEXT, :DATA_TYPE_SSML, :DATA_TYPE_TEXT_COMP, :DATA_TYPE_SSML_COMP, \
|
|
81
|
+
:PRIORITY_LOW, :PRIORITY_NORMAL, :PRIORITY_HIGH, :LANG_LOW, :GENDER_FEMALE, :GENDER_MALE, \
|
|
82
|
+
:GENDER_UNKNOWN, :REPEAT_NONE, :REPEAT_INFINITY
|
|
83
|
+
|
|
84
|
+
#アクセサ定義
|
|
85
|
+
attr_accessor :enc_flg, :data_type, :priority, :lang_code, :gender, :age, :repeat, :time_stamp, :padding, \
|
|
86
|
+
:name_len, :size, :name, :data
|
|
87
|
+
attr_reader :id, :head_len, :total_len
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# <summary>
|
|
91
|
+
# 送信データ生成
|
|
92
|
+
# </summary>
|
|
93
|
+
# <returns>生成データサイズ, 生成データ</returns>
|
|
94
|
+
def makeSendData()
|
|
95
|
+
@total_len = @head_len + @name_len + @size
|
|
96
|
+
mdata = nil
|
|
97
|
+
|
|
98
|
+
begin
|
|
99
|
+
#ネットワークバイトオーダー後に、Byte配列に変換
|
|
100
|
+
bLangCode = [@lang_code].pack("n*").unpack("C*")
|
|
101
|
+
bNameLen = [@name_len].pack("n*").unpack("C*")
|
|
102
|
+
bSize = [@size].pack("N*").unpack("C*")
|
|
103
|
+
|
|
104
|
+
if(@name != nil )
|
|
105
|
+
mdata = [@id] + [@enc_flg] + [@data_type] + [@priority] + bLangCode + [@gender] + [@age] + [@repeat] + \
|
|
106
|
+
@time_stamp + [@padding] + bNameLen + bSize + @name + @data
|
|
107
|
+
else
|
|
108
|
+
mdata = [@id] + [@enc_flg] + [@data_type] + [@priority] + bLangCode + [@gender] + [@age] + [@repeat] + \
|
|
109
|
+
@time_stamp + [@padding] + bNameLen + bSize + @data
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
rescue Exception => ex
|
|
113
|
+
p ex
|
|
114
|
+
@total_len = 0
|
|
115
|
+
ensure
|
|
116
|
+
return @total_len, mdata
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
end
|
data/lib/haruzira_sdk.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: haruzira_sdk
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Symmetry Soft
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-09-15 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: bundler
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.12'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.12'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rake
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '10.0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '10.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rspec
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '3.0'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '3.0'
|
|
55
|
+
description: This gem is a SDK for Haruzira to text to remote speech.
|
|
56
|
+
email:
|
|
57
|
+
- git@symmetry-soft.com
|
|
58
|
+
executables: []
|
|
59
|
+
extensions: []
|
|
60
|
+
extra_rdoc_files: []
|
|
61
|
+
files:
|
|
62
|
+
- ".gitignore"
|
|
63
|
+
- ".rspec"
|
|
64
|
+
- ".travis.yml"
|
|
65
|
+
- CODE_OF_CONDUCT.md
|
|
66
|
+
- Gemfile
|
|
67
|
+
- README.md
|
|
68
|
+
- Rakefile
|
|
69
|
+
- bin/console
|
|
70
|
+
- bin/setup
|
|
71
|
+
- haruzira_sdk.gemspec
|
|
72
|
+
- lib/haruzira_sdk.rb
|
|
73
|
+
- lib/haruzira_sdk/HaruziraMessage.rb
|
|
74
|
+
- lib/haruzira_sdk/HaruziraRequire.rb
|
|
75
|
+
- lib/haruzira_sdk/HzClientTcpCommunication.rb
|
|
76
|
+
- lib/haruzira_sdk/HzEncryption.rb
|
|
77
|
+
- lib/haruzira_sdk/HzTrace.rb
|
|
78
|
+
- lib/haruzira_sdk/MsgAckCancelReading.rb
|
|
79
|
+
- lib/haruzira_sdk/MsgAckSendSpeechData.rb
|
|
80
|
+
- lib/haruzira_sdk/MsgAckStartComm.rb
|
|
81
|
+
- lib/haruzira_sdk/MsgNotifyCompleteSpeech.rb
|
|
82
|
+
- lib/haruzira_sdk/MsgNotifyEndComm.rb
|
|
83
|
+
- lib/haruzira_sdk/MsgNotifyStopComm.rb
|
|
84
|
+
- lib/haruzira_sdk/MsgReqCancelReading.rb
|
|
85
|
+
- lib/haruzira_sdk/MsgReqStartComm.rb
|
|
86
|
+
- lib/haruzira_sdk/MsgSendSpeechData.rb
|
|
87
|
+
- lib/haruzira_sdk/version.rb
|
|
88
|
+
homepage: ''
|
|
89
|
+
licenses: []
|
|
90
|
+
metadata: {}
|
|
91
|
+
post_install_message:
|
|
92
|
+
rdoc_options: []
|
|
93
|
+
require_paths:
|
|
94
|
+
- lib
|
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
|
+
requirements:
|
|
97
|
+
- - ">="
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: '0'
|
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
|
+
requirements:
|
|
102
|
+
- - ">="
|
|
103
|
+
- !ruby/object:Gem::Version
|
|
104
|
+
version: '0'
|
|
105
|
+
requirements: []
|
|
106
|
+
rubyforge_project:
|
|
107
|
+
rubygems_version: 2.6.6
|
|
108
|
+
signing_key:
|
|
109
|
+
specification_version: 4
|
|
110
|
+
summary: SDK for Haruzira UWP application.
|
|
111
|
+
test_files: []
|